Integrated new UI images, new CSS styles and tweaks curtuesy of Sam :)

This commit is contained in:
Lewis Hemens 2014-03-25 21:46:31 +00:00
parent a747f89b71
commit 95e38fc208
29 changed files with 355 additions and 74 deletions

BIN
images/box-icon.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

BIN
images/clear-icon.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

BIN
images/drive-icon.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

BIN
images/erase-icon.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

BIN
images/export-icon.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

0
images/favicon.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

BIN
images/freeform-icon.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

BIN
images/import-icon.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
images/info-icon.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

BIN
images/line-icon.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

BIN
images/logo-bar.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
images/logo-full.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

BIN
images/logo-options.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

BIN
images/move-icon.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

BIN
images/redo-icon.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

BIN
images/text-icon.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

BIN
images/undo-icon.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

418
index.html Normal file → Executable file
View File

@ -13,7 +13,7 @@
font-weight: bold; font-weight: bold;
font-family: sans-serif; font-family: sans-serif;
font-size: 0.95em; font-size: 0.95em;
color: #777; color: #666;
} }
a { a {
@ -35,67 +35,137 @@ button {
} }
#draw-tools { #draw-tools {
text-align: center; text-align: left;
padding-left: 120px;
display: inline-block; display: inline-block;
position: fixed; position: fixed;
width: 100%; width: 100%;
background-color: #FFF; background-color: #FFF;
z-index: 100; z-index: 100;
box-shadow: 0px 3px 3px #CCC; -webkit-box-shadow: 0px 1px 5px 0px #BBB; /* Android 2.3+, iOS 4.0.2-4.2, Safari 3-4 */
box-shadow: 0px 1px 5px 0px #BBB; /* Chrome 6+, Firefox 4+, IE 9+, iOS 5+, Opera 10.50+ */
}
#logo-bar {
position: fixed;
left: 0px;
z-index: 101;
margin: 8px;
} }
#file-tools { #file-tools {
text-align: right; text-align: right;
display: inline-block; display: inline-block;
position: fixed; position: fixed;
right: 0px; right: 2px;
z-index: 100; z-index: 100;
} }
#draw-tools > button, #file-tools > button { #draw-tools > button, #file-tools > button {
font-size: 12px;
vertical-align: top; vertical-align: top;
display: inline-block; display: inline-block;
margin: 5px; margin: 8px 8px;
width: 30px; width: 24px;
height: 30px; height: 24px;
text-align: center; text-align: center;
cursor: pointer;
outline: 0 !important; outline: 0 !important;
background-size: 200% 100% !important; background-size: 200% 100% !important;
background-color: #FFF; background-color: #FFF;
} }
.info-icon { #file-tools > button.info-image {
margin-left: 30px;
}
.info-icon, .info-icon-file {
width: 30px; width: 30px;
height: 30px; height: 30px;
margin: 0 0 5px -4px;
background-size: 100% !important; background-size: 100% !important;
background-size: 200% 100% !important; background-size: 200% 100% !important;
display: inline-block; display: inline-block;
} }
.info-description { .info-description {
vertical-align: middle; vertical-align: text-bottom;
margin-left: 5px; margin-left: 10px;
display: inline-block; display: inline-block;
height: 30px; height: 30px;
width: 64%;
text-align: left;
} }
.info-description br {
display: none;
}
.dialog span {
color: #AAA;
}
#drive-filename { #drive-filename {
display: inline-block; display: inline-block;
} }
#drive-save-state {
display: inline-block;
line-height: 40px;
margin-right: 10px;
color: #bbb;
font-weight: normal;
font-size: 0.9em;
}
#drive-filename {
font-size: 30px;
border: gray 1px solid;
padding: 5px;
background: #EEE;
cursor: pointer;
}
/* Mobile overrides */ /* Mobile overrides */
@media(max-width:600px) { @media(max-width:780px) {
#logo-bar {
margin: 10px;
}
#draw-tools > button, #file-tools > button {
margin: 10px 4px;
}
#draw-tools {
text-align: center;
padding-left: 0px;
}
/* Move file tools to the bottom. */ /* Move file tools to the bottom. */
#file-tools { #file-tools {
left: 0px;
padding-left: 9px;
bottom: 0px; bottom: 0px;
background-color: #FFF; background-color: #FFF;
box-shadow:0px -3px 3px #CCC;
width: 100%; width: 100%;
} text-align: left;
#drive-filename { -webkit-box-shadow: 0px -1px 5px 0px #BBB; /* Android 2.3+, iOS 4.0.2-4.2, Safari 3-4 */
display: block; box-shadow: 0px -1px 5px 0px #BBB; /* Chrome 6+, Firefox 4+, IE 9+, iOS 5+, Opera 10.50+ */
} }
#drive-save-state {
line-height: 44px;
margin-right: 6px;
}
#options-button {
position: fixed;
right: 6px;
}
#drive-filename {
display: block;
}
} }
.dialog { .dialog {
@ -105,15 +175,17 @@ button {
top: 0px; top: 0px;
bottom: 0px; bottom: 0px;
margin: auto; margin: auto;
width: 85%;
height: 89%;
max-width: 640px; max-width: 640px;
max-height: 480px; max-height: 380px;
width: 90%;
height: 70%;
background: #FFF; background: #FFF;
display: none; display: none;
z-index: 100; z-index: 100;
padding: 5px; padding: 20px;
box-shadow:0px 0px 3px 3px #CCC; text-align: center;
-webkit-box-shadow: 0px 0px 5px 0px #BBB; /* Android 2.3+, iOS 4.0.2-4.2, Safari 3-4 */
box-shadow: 0px 0px 5px 0px #BBB; /* Chrome 6+, Firefox 4+, IE 9+, iOS 5+, Opera 10.50+ */
} }
.visible { .visible {
@ -137,11 +209,68 @@ button.active, .info-icon {
position: absolute; position: absolute;
right: 0px; right: 0px;
bottom: 0px; bottom: 0px;
margin: 5px; margin: 7px;
border: 0;
-webkit-appearance: none;
background-color: transparent;
}
@media(max-width:500px) {
#logo-bar {
display: none;
}
.info-description {
vertical-align: top;
width: 84%;
}
.dialog, .dialog p {
font-size: 0.90em !important;
}
.dialog {
padding: 10px;
max-height: 410px;
}
.info-icon, .info-icon-file {
margin: 0 0 10px -4px;
}
.info-description br {
display: block;
}
.close-dialog-button, #import-submit-button, #text-tool-close {
margin: 10px 3px;
}
}
#options-logo {
margin: 10px 0 0;
}
#options-scroll {
overflow-y: scroll;
height: 91%;
-webkit-overflow-scrolling: touch;
}
#options-scroll p {
margin: 10px 0 15px;
}
.dialog-button-bar {
position: absolute;
right: 0;
bottom: 0;
width: 100%;
height: 8%;
min-height: 34px;
background-color: #DDD;
text-align: right;
} }
#import-submit-button { #import-submit-button {
margin-right: 70px; margin-right: 80px;
} }
#ascii-canvas { #ascii-canvas {
@ -152,7 +281,9 @@ button.active, .info-icon {
textarea { textarea {
width: 100%; width: 100%;
height: 100%; height: 91%;
font-size: 1.2em;
font-weight: normal;
overflow: hidden; overflow: hidden;
resize: none; resize: none;
margin: 0px; margin: 0px;
@ -170,7 +301,7 @@ textarea {
position: fixed; position: fixed;
width: 100%; width: 100%;
height: 100%; height: 100%;
transition: opacity 1.5s ease-in-out; /* transition: opacity 1.5s ease-in-out; */
background-size: 100%; background-size: 100%;
pointer-events: none; pointer-events: none;
} }
@ -179,6 +310,12 @@ textarea {
display: inline; display: inline;
max-width: 100%; max-width: 100%;
max-height: 100%; max-height: 100%;
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
} }
#text-tool-widget { #text-tool-widget {
@ -195,42 +332,157 @@ textarea {
box-shadow: 0px 0px 3px 3px #CCC; box-shadow: 0px 0px 3px 3px #CCC;
} }
#drive-save-state {
display: inline-block;
font-size: 15px;
margin-top: 10px;
margin-right: 5px;
}
#drive-filename {
font-size: 30px;
border: gray 1px solid;
padding: 5px;
background: #EEE;
cursor: pointer;
}
.fade-out { .fade-out {
opacity: 0; opacity: 0;
} }
.box-image { background-image: url('images/box-icon.png'); } .box-image { background-image: url('images/box-icon.gif'); }
.line-image { background-image: url('images/line-icon.png'); } .line-image { background-image: url('images/line-icon.gif'); }
.freeform-image { background-image: url('images/freeform-icon.png'); } .freeform-image { background-image: url('images/freeform-icon.gif'); }
.erase-image { background-image: url('images/erase-icon.png'); } .erase-image { background-image: url('images/erase-icon.gif'); }
.move-image { background-image: url('images/move-icon.png'); } .move-image { background-image: url('images/move-icon.gif'); }
.text-image { background-image: url('images/text-icon.png'); } .text-image { background-image: url('images/text-icon.gif'); }
.info-image { background-image: url('images/info-icon.png'); }
.drive-image { background-image: url('images/drive-icon.png'); } .drive-image { background-image: url('images/drive-icon.gif'); }
.export-image { background-image: url('images/export-icon.gif'); }
.import-image { background-image: url('images/import-icon.gif'); }
.clear-image { background-image: url('images/clear-icon.gif'); }
.undo-image { background-image: url('images/undo-icon.gif'); }
.redo-image { background-image: url('images/redo-icon.gif'); }
.info-image { background-image: url('images/info-icon.gif'); }
/* New intro animation */
.animated {
-webkit-animation-duration: 3s;
animation-duration: 3s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}
@-webkit-keyframes bounceOut {
0% {
opacity: 0;
-webkit-transform: scale(.9);
transform: scale(.9);
}
12.5% {
opacity: 1;
-webkit-transform: scale(1);
transform: scale(1);
}
73% {
-webkit-transform: scale(1);
transform: scale(1);
}
83% {
-webkit-transform: scale(.95);
transform: scale(.95);
}
92% {
-webkit-transform: scale(1.1);
transform: scale(1.1);
}
100% {
-webkit-transform: scale(.3);
transform: scale(.3);
}
}
@keyframes bounceOut {
0% {
opacity: 0;
-webkit-transform: scale(.9);
-ms-transform: scale(.9);
transform: scale(.9);
}
12.5% {
opacity: 1;
-webkit-transform: scale(1);
-ms-transform: scale(1);
transform: scale(1);
}
73% {
-webkit-transform: scale(1);
-ms-transform: scale(1);
transform: scale(1);
}
83% {
-webkit-transform: scale(.95);
-ms-transform: scale(.95);
transform: scale(.95);
}
92% {
-webkit-transform: scale(1.1);
-ms-transform: scale(1.1);
transform: scale(1.1);
}
100% {
-webkit-transform: scale(.3);
-ms-transform: scale(.3);
transform: scale(.3);
}
}
.bounceOut {
-webkit-animation-name: bounceOut;
animation-name: bounceOut;
}
@-webkit-keyframes fadeOut {
0% {
opacity: 1;
}
90% {
opacity: 1;
}
100% {
opacity: 0;
}
}
@keyframes fadeOut {
0% {
opacity: 1;
}
90% {
opacity: 1;
}
100% {
opacity: 0;
}
}
.fadeOut {
-webkit-animation-name: fadeOut;
animation-name: fadeOut;
}
</style> </style>
</head> </head>
<body> <body>
<div id="logo-interstitial"> <div id="logo-interstitial" class="animated fadeOut">
<img src="images/logo-full.png"></img> <img src="images/logo-full.gif" class="animated bounceOut" />
</div> </div>
<img id="logo-bar" src="images/logo-bar.gif" width="88" height="24" />
<div id="draw-tools"> <div id="draw-tools">
<button id="box-button" class="tool active box-image"></button> <button id="box-button" class="tool active box-image"></button>
<button id="line-button" class="tool line-image"></button> <button id="line-button" class="tool line-image"></button>
@ -243,36 +495,59 @@ textarea {
<div id="file-tools"> <div id="file-tools">
<div id="drive-save-state">Unsaved</div> <div id="drive-save-state">Unsaved</div>
<button id="drive-button" class="tool drive-image"></button> <button id="drive-button" class="tool drive-image"></button>
<button id="export-button" class="tool">Ex</button> <button id="export-button" class="tool export-image"></button>
<button id="import-button" class="tool">Im</button> <button id="import-button" class="tool import-image"></button>
<button id="undo-button" class="tool">Un</button> <button id="clear-button" class="tool clear-image"></button>
<button id="redo-button" class="tool">Re</button> <button id="undo-button" class="tool undo-image"></button>
<button id="redo-button" class="tool redo-image"></button>
<button id="options-button" class="tool info-image"></button> <button id="options-button" class="tool info-image"></button>
</div> </div>
<div id="export-button-dialog" class="dialog"> <div id="export-button-dialog" class="dialog">
<textarea readonly id="export-area"></textarea> <textarea readonly id="export-area"></textarea>
<button class="close-dialog-button">Close</button> <div class="dialog-button-bar">
<button class="close-dialog-button">Close</button>
</div>
</div> </div>
<div id="options-button-dialog" class="dialog"> <div id="options-button-dialog" class="dialog">
<div class="info-icon box-image"></div><div class="info-description">Draw boxes. You can resize them later with the Resize tool.</div><br> <div id="options-scroll">
<div class="info-icon line-image"></div><div class="info-description">Draw lines. Connect it to another line to change the orientation.</div><br> <img id="options-logo" src="images/logo-options.gif" width="176" height="48" />
<div class="info-icon text-image"></div><div class="info-description">Press a character on the keyboard, then drag to draw it.</div><br>
<div class="info-icon erase-image"></div><div class="info-description">Drag out an area to erase.</div><br>
<div class="info-icon move-image"></div><div class="info-description">Resize boxes and lines, just drag a line to change it.</div><br>
<div class="info-icon text-image"></div><div class="info-description">Press where to start writing, and type the text you want.</div><br>
<p> To move around the screen, hold CTRL on desktop and drag. On mobile, drag quickly to move and press and hold to start drawing.</p>
<button id="use-lines-button">Lines Mode</button> <p>Moving around.<br>
<button id="use-ascii-button">ASCII Mode</button><br> Desktop: <span>Hold CTRL and drag the screen.</span><br>
<button class="close-dialog-button">Close</button> Mobile: <span>Drag quickly to move. Press and hold to start drawing. Pinch to zoom in/out.</span></p>
<div class="info-icon box-image"></div><div class="info-description">Draw boxes. <span>You can resize them later with the Resize tool.</span></div><br>
<div class="info-icon line-image"></div><div class="info-description">Draw lines. <span>Connect it to another line to change the orientation.</span></div><br>
<div class="info-icon freeform-image"></div><div class="info-description">Draw freehand. <span>Press a character on the keyboard and draw with it.</span></div><br>
<div class="info-icon erase-image"></div><div class="info-description">Erase. <span>Drag out an area to remove its contents from the canvas.</span></div><br>
<div class="info-icon move-image"></div><div class="info-description">Resize boxes and lines. <span>Drag a line to change it's size/shape.</span></div><br>
<div class="info-icon text-image"></div><div class="info-description">Type text. <span>Click and type where you'd like to add text to the canvas.</span></div><br>
<br>
<div class="info-icon-file drive-image"></div><div class="info-description">Save. <span>Connect to Google Drive to save your work automatically.</span></div><br>
<div class="info-icon-file export-image"></div><div class="info-description">Export. <span>Copy your work to use it outside of ASCIIFlow.</span></div><br>
<div class="info-icon-file import-image"></div><div class="info-description">Import. <span>Paste ASCII/text to import it onto the canvas.</span></div><br>
<div class="info-icon-file clear-image"></div><div class="info-description">Clear. <span>Remove the entire contents from the canvas. Can be undone.</span></div><br>
<div class="info-icon-file undo-image"></div><div class="info-description">Undo. <br><span>Made a mistake? Undo!</span></div><br>
<div class="info-icon-file redo-image"></div><div class="info-description">Redo. <br><span>Too many Undo's? Redo!</span></div><br>
<br>
<button id="use-lines-button">Lines Mode</button>
<button id="use-ascii-button">ASCII Mode</button><br>
<br>
<br>
</div>
<div class="dialog-button-bar">
<button class="close-dialog-button">Close</button>
</div>
</div> </div>
<div id="import-button-dialog" class="dialog"> <div id="import-button-dialog" class="dialog">
<textarea id="import-area"></textarea> <textarea id="import-area"></textarea>
<button class="close-dialog-button">Close</button> <div class="dialog-button-bar">
<button id="import-submit-button">Submit</button> <button class="close-dialog-button">Close</button>
<button id="import-submit-button">Import</button>
</div>
</div> </div>
<!-- These dialogs are handled seperately. --> <!-- These dialogs are handled seperately. -->
@ -288,7 +563,9 @@ textarea {
<br> <br>
<div id="drive-file-list"></div> <div id="drive-file-list"></div>
<button id="drive-new-file-button">New Drawing</button> <button id="drive-new-file-button">New Drawing</button>
<button class="close-dialog-button">Close</button> <div class="dialog-button-bar">
<button class="close-dialog-button">Close</button>
</div>
</div> </div>
<textarea id="freeform-tool-input"></textarea> <textarea id="freeform-tool-input"></textarea>
@ -300,7 +577,6 @@ textarea {
<script src="https://apis.google.com/js/client.js?onload=window.gapiCallback"></script> <script src="https://apis.google.com/js/client.js?onload=window.gapiCallback"></script>
<script> <script>
window.setTimeout(function() { $('#logo-interstitial').addClass('fade-out'); }, 1000);
window.setTimeout(function() { $('#logo-interstitial').hide(); }, 3000); window.setTimeout(function() { $('#logo-interstitial').hide(); }, 3000);
</script> </script>

View File

@ -501,7 +501,8 @@ T.prototype.n = function() {
a = a.target.id; a = a.target.id;
$(".dialog").removeClass("visible"); $(".dialog").removeClass("visible");
$("#" + a + "-dialog").toggleClass("visible"); $("#" + a + "-dialog").toggleClass("visible");
"export-button" == a && ($("#export-area").val(S(this.state)), $("#export-area").focus(), $("#export-area").select()); "import-button" == a && ($("#import-area").val(""), $("#import-area").focus());
"export-button" == a && ($("#export-area").val(S(this.state)), $("#export-area").select());
"clear-button" == a && this.state.clear(); "clear-button" == a && this.state.clear();
"undo-button" == a && ia(this.state); "undo-button" == a && ia(this.state);
"redo-button" == a && ja(this.state); "redo-button" == a && ja(this.state);

View File

@ -192,9 +192,13 @@ ascii.Controller.prototype.handleFileButton = function(id) {
$('.dialog').removeClass('visible'); $('.dialog').removeClass('visible');
$('#' + id + '-dialog').toggleClass('visible'); $('#' + id + '-dialog').toggleClass('visible');
if (id == 'import-button') {
$('#import-area').val('');
$('#import-area').focus();
}
if (id == 'export-button') { if (id == 'export-button') {
$('#export-area').val(this.state.outputText()); $('#export-area').val(this.state.outputText());
$('#export-area').focus();
$('#export-area').select(); $('#export-area').select();
} }
if (id == 'clear-button') { if (id == 'clear-button') {