Skip to content
This repository has been archived by the owner on May 22, 2021. It is now read-only.

refactored css: phase 1 #760

Merged
merged 2 commits into from
Feb 19, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
249 changes: 249 additions & 0 deletions app/base.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,249 @@
:root {
--pageBGColor: #fff;
--primaryControlBGColor: #0297f8;
--primaryControlFGColor: #fff;
--primaryControlHoverColor: #0287e8;
--inputTextColor: #737373;
--errorColor: #d70022;
--linkColor: #0094fb;
--textColor: #0c0c0d;
--lightTextColor: #737373;
--successControlBGColor: #05a700;
--successControlFGColor: #fff;
}

html {
background: url('../assets/send_bg.svg');
font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'segoe ui',
'helvetica neue', helvetica, ubuntu, roboto, noto, arial, sans-serif;
font-weight: 200;
background-size: 110%;
background-repeat: no-repeat;
background-position: center top;
height: 100%;
margin: auto;
}

body {
font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'segoe ui',
'helvetica neue', helvetica, ubuntu, roboto, noto, arial, sans-serif;
display: flex;
flex-direction: column;
margin: 0;
min-height: 100vh;
position: relative;
}

input,
select,
textarea,
button {
font-family: inherit;
margin: 0;
}

a {
text-decoration: none;
}

.all {
flex: 1;
display: flex;
flex-direction: column;
justify-content: flex-start;
max-width: 650px;
margin: 0 auto;
padding: 0 20px;
box-sizing: border-box;
width: 96%;
}

.btn {
font-size: 15px;
font-weight: 500;
color: var(--primaryControlFGColor);
cursor: pointer;
text-align: center;
background: var(--primaryControlBGColor);
border: 1px solid var(--primaryControlBGColor);
border-radius: 5px;
}

.btn--cancel {
color: var(--errorColor);
background: var(--pageBGColor);
font-size: 15px;
border: 0;
cursor: pointer;
text-decoration: underline;
}

.btn--cancel:disabled {
text-decoration: none;
cursor: auto;
}

.input {
border: 1px solid var(--primaryControlBGColor);
border-radius: 6px 0 0 6px;
font-size: 20px;
color: var(--inputTextColor);
font-family: 'SF Pro Text', sans-serif;
letter-spacing: 0;
line-height: 23px;
font-weight: 300;
height: 46px;
padding-left: 10px;
padding-right: 10px;
}

.input--noBtn {
border-radius: 6px;
}

.inputBtn {
background: var(--primaryControlBGColor);
border-radius: 0 6px 6px 0;
border: 1px solid var(--primaryControlBGColor);
color: var(--primaryControlFGColor);
cursor: pointer;

/* Force flat button look */
appearance: none;
font-size: 15px;
padding-bottom: 3px;
padding-left: 10px;
padding-right: 10px;
white-space: nowrap;
}

.inputBtn:disabled {
cursor: auto;
}

.inputBtn:hover {
background-color: var(--primaryControlHoverColor);
}

.inputBtn--hidden {
display: none;
}

.cursor--pointer {
cursor: pointer;
}

.link {
color: var(--linkColor);
text-decoration: none;
}

.link:focus,
.link:active,
.link:hover {
color: var(--primaryControlHoverColor);
}

.link--action {
text-decoration: underline;
text-align: center;
}

.page {
margin: 0 auto 30px;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
text-align: center;
}

.progressSection {
margin: 0 auto;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
text-align: center;
font-size: 15px;
}

.progressSection__text {
color: var(--lightTextColor);
letter-spacing: -0.4px;
margin-top: 24px;
margin-bottom: 74px;
}

.effect--fadeOut {
opacity: 0;
animation: fadeout 200ms linear;
}

@keyframes fadeout {
0% {
opacity: 1;
}

100% {
opacity: 0;
}
}

.effect--fadeIn {
opacity: 1;
animation: fadein 200ms linear;
}

@keyframes fadein {
0% {
opacity: 0;
}

100% {
opacity: 1;
}
}

.title {
font-size: 33px;
line-height: 40px;
margin: 20px auto;
text-align: center;
max-width: 520px;
font-family: 'SF Pro Text', sans-serif;
word-wrap: break-word;
}

.description {
font-size: 15px;
line-height: 23px;
max-width: 630px;
text-align: center;
margin: 0 auto 60px;
color: var(--textColor);
width: 92%;
}

@media (max-device-width: 768px), (max-width: 768px) {
.description {
margin: 0 auto 25px;
}
}

@media (max-device-width: 520px), (max-width: 520px) {
.input {
font-size: 22px;
padding: 10px 10px;
border-radius: 6px 6px 0 0;
}

.inputBtn {
border-radius: 0 0 6px 6px;
flex: 0 1 65px;
}

.input--noBtn {
border-radius: 6px;
}
}
8 changes: 6 additions & 2 deletions app/fileManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ export default function(state, emitter) {

document.getElementById('cancel-upload').hidden = 'hidden';
await delay(1000);
await fadeOut('upload-progress');
await fadeOut('.page');
openLinksInNewTab(links, false);
emitter.emit('pushState', `/share/${ownedFile.id}`);
} catch (err) {
Expand All @@ -130,9 +130,13 @@ export default function(state, emitter) {

emitter.on('password', async ({ password, file }) => {
try {
state.settingPassword = true;
render();
await file.setPassword(password);
state.storage.writeFile(file);
metrics.addedPassword({ size: file.size });
await delay(1000);
state.settingPassword = false;
} catch (err) {
console.error(err);
}
Expand Down Expand Up @@ -170,7 +174,7 @@ export default function(state, emitter) {
const time = Date.now() - start;
const speed = size / (time / 1000);
await delay(1000);
await fadeOut('download-progress');
await fadeOut('.page');
saveFile(f);
state.storage.totalDownloads += 1;
state.transfer.reset();
Expand Down
18 changes: 18 additions & 0 deletions app/main.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
@import './base.css';
@import './templates/header/header.css';
@import './templates/downloadButton/downloadButton.css';
@import './templates/progress/progress.css';
@import './templates/passwordInput/passwordInput.css';
@import './templates/downloadPassword/downloadPassword.css';
@import './templates/setPasswordSection/setPasswordSection.css';
@import './templates/footer/footer.css';
@import './templates/fxPromo/fxPromo.css';
@import './templates/selectbox/selectbox.css';
@import './templates/fileList/fileList.css';
@import './templates/file/file.css';
@import './templates/popup/popup.css';
@import './pages/welcome/welcome.css';
@import './pages/preview/preview.css';
@import './pages/share/share.css';
@import './pages/notFound/notFound.css';
@import './pages/unsupported/unsupported.css';
3 changes: 1 addition & 2 deletions app/pages/blank.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
const html = require('choo/html');

module.exports = function() {
const div = html`<div></div>`;
return div;
return html`<div></div>`;
};
34 changes: 0 additions & 34 deletions app/pages/completed.js

This file was deleted.

26 changes: 26 additions & 0 deletions app/pages/completed/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
const html = require('choo/html');
const progress = require('../../templates/progress');
const { fadeOut } = require('../../utils');

module.exports = function(state, emit) {
return html`
<div class="page effect--fadeIn">
<div class="title">
${state.translate('downloadFinish')}
</div>
<div class="description"></div>
${progress(1)}
<div class="progressSection">
<div class="progressSection__text"></div>
</div>
<a class="link link--action"
href="/"
onclick=${sendNew}>${state.translate('sendYourFilesLink')}</a>
</div>`;

async function sendNew(e) {
e.preventDefault();
await fadeOut('.page');
emit('pushState', '/');
}
};
Loading