Merge branch 'ref/design' of https://github.com/bitpay/bitpay-wallet into feature/onboarding_last_steps
This commit is contained in:
commit
4af098764d
23 changed files with 690 additions and 421 deletions
|
|
@ -23,7 +23,7 @@ angular.module('copayApp.controllers').controller('createController',
|
|||
12: 1,
|
||||
};
|
||||
|
||||
$scope.init = function() {
|
||||
$scope.init = function(tc) {
|
||||
$scope.formData = {};
|
||||
var defaults = configService.getDefaults();
|
||||
$scope.formData.account = 1;
|
||||
|
|
@ -31,9 +31,9 @@ angular.module('copayApp.controllers').controller('createController',
|
|||
$scope.TCValues = lodash.range(2, defaults.limits.totalCopayers + 1);
|
||||
$scope.formData.totalCopayers = defaults.wallet.totalCopayers;
|
||||
$scope.formData.derivationPath = derivationPathHelper.default;
|
||||
$scope.setTotalCopayers(1);
|
||||
updateRCSelect(1);
|
||||
updateSeedSourceSelect(1);
|
||||
$scope.setTotalCopayers(tc);
|
||||
updateRCSelect(tc);
|
||||
updateSeedSourceSelect(tc);
|
||||
};
|
||||
|
||||
$scope.showAdvChange = function() {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,14 @@
|
|||
'use strict';
|
||||
|
||||
angular.module('copayApp.controllers').controller('disclaimerController', function($scope, $state, $log, $ionicModal, profileService) {
|
||||
angular.module('copayApp.controllers').controller('disclaimerController', function($scope, $timeout, $state, $log, $ionicModal, profileService) {
|
||||
|
||||
$scope.init = function() {
|
||||
$scope.terms = {};
|
||||
$scope.accept1 = $scope.accept2 = $scope.accept3 = false;
|
||||
$timeout(function() {
|
||||
$scope.$apply();
|
||||
}, 1);
|
||||
};
|
||||
|
||||
$scope.confirm = function() {
|
||||
profileService.setDisclaimerAccepted(function(err) {
|
||||
|
|
@ -11,14 +19,12 @@ angular.module('copayApp.controllers').controller('disclaimerController', functi
|
|||
});
|
||||
};
|
||||
|
||||
this.openModal = function() {
|
||||
|
||||
$ionicModal.fromTemplateUrl('views/modals/addressbook.html', {
|
||||
$scope.openTermsModal = function() {
|
||||
$ionicModal.fromTemplateUrl('views/modals/terms.html', {
|
||||
scope: $scope
|
||||
}).then(function(modal) {
|
||||
$scope.addressbookModal = modal;
|
||||
$scope.addressbookModal.show();
|
||||
$scope.termsModal = modal;
|
||||
$scope.termsModal.show();
|
||||
});
|
||||
};
|
||||
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,6 +1,11 @@
|
|||
'use strict';
|
||||
|
||||
angular.module('copayApp.controllers').controller('walletDetailsController', function($scope, $rootScope, $interval, $timeout, $filter, $log, $ionicModal, $ionicPopover, $ionicNavBarDelegate, $state, $stateParams, bwcError, profileService, lodash, configService, gettext, gettextCatalog, platformInfo, walletService, $ionicPopup, txpModalService, externalLinkService) {
|
||||
angular.module('copayApp.controllers').controller('walletDetailsController', function($scope, $rootScope, $interval, $timeout, $filter, $log, $ionicModal, $ionicPopover, $ionicNavBarDelegate, $state, $stateParams, profileService, lodash, configService, gettext, gettextCatalog, platformInfo, walletService, $ionicPopup, txpModalService, externalLinkService) {
|
||||
var isCordova = platformInfo.isCordova;
|
||||
var isWP = platformInfo.isWP;
|
||||
var isAndroid = platformInfo.isAndroid;
|
||||
var isChromeApp = platformInfo.isChromeApp;
|
||||
|
||||
var HISTORY_SHOW_LIMIT = 10;
|
||||
var currentTxHistoryPage;
|
||||
var wallet;
|
||||
|
|
@ -65,14 +70,19 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun
|
|||
$scope.updateStatus = function(force) {
|
||||
$scope.updatingStatus = true;
|
||||
$scope.updateStatusError = false;
|
||||
$scope.walletNotRegistered = false;
|
||||
|
||||
walletService.getStatus(wallet, {
|
||||
force: !!force,
|
||||
}, function(err, status) {
|
||||
$scope.updatingStatus = false;
|
||||
if (err) {
|
||||
if (err === 'WALLET_NOT_REGISTERED') {
|
||||
$scope.walletNotRegistered = true;
|
||||
} else {
|
||||
$scope.updateStatusError = true;
|
||||
}
|
||||
$scope.status = null;
|
||||
$scope.updateStatusError = true;
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -140,7 +150,15 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun
|
|||
};
|
||||
|
||||
$scope.recreate = function() {
|
||||
walletService.recreate();
|
||||
walletService.recreate(wallet, function(err) {
|
||||
$scope.init();
|
||||
if (err) return;
|
||||
$timeout(function() {
|
||||
walletService.startScan(wallet, function() {
|
||||
$scope.$apply();
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
$scope.updateTxHistory = function(cb) {
|
||||
|
|
@ -158,7 +176,6 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun
|
|||
$timeout(function() {
|
||||
$scope.$apply();
|
||||
}, 1);
|
||||
|
||||
};
|
||||
|
||||
$timeout(function() {
|
||||
|
|
|
|||
|
|
@ -282,11 +282,19 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
|
|||
},
|
||||
},
|
||||
})
|
||||
.state('tabs.create', {
|
||||
url: '/create',
|
||||
.state('tabs.create-personal', {
|
||||
url: '/create-personal',
|
||||
views: {
|
||||
'tab-home': {
|
||||
templateUrl: 'views/create.html'
|
||||
templateUrl: 'views/tab-create-personal.html'
|
||||
},
|
||||
}
|
||||
})
|
||||
.state('tabs.create-shared', {
|
||||
url: '/create-shared',
|
||||
views: {
|
||||
'tab-home': {
|
||||
templateUrl: 'views/tab-create-shared.html'
|
||||
},
|
||||
}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -7,31 +7,31 @@ angular.module('copayApp.services').factory('ongoingProcess', function($log, $ti
|
|||
var ongoingProcess = {};
|
||||
|
||||
var processNames = {
|
||||
'scanning': gettext('Scanning Wallet funds...'),
|
||||
'recreating': gettext('Recreating Wallet...'),
|
||||
'generatingCSV': gettext('Generating .csv file...'),
|
||||
'creatingTx': gettext('Creating transaction'),
|
||||
'sendingTx': gettext('Sending transaction'),
|
||||
'signingTx': gettext('Signing transaction'),
|
||||
'broadcastingTx': gettext('Broadcasting transaction'),
|
||||
'rejectTx': gettext('Rejecting payment proposal'),
|
||||
'removeTx': gettext('Deleting payment proposal'),
|
||||
'fetchingPayPro': gettext('Fetching Payment Information'),
|
||||
'calculatingFee': gettext('Calculating fee'),
|
||||
'joiningWallet': gettext('Joining Wallet...'),
|
||||
'retrivingInputs': gettext('Retrieving inputs information'),
|
||||
'creatingWallet': gettext('Creating Wallet...'),
|
||||
'validatingWallet': gettext('Validating wallet integrity...'),
|
||||
'connectingledger': gettext('Waiting for Ledger...'),
|
||||
'connectingtrezor': gettext('Waiting for Trezor...'),
|
||||
'validatingWords': gettext('Validating recovery phrase...'),
|
||||
'connectingCoinbase': gettext('Connecting to Coinbase...'),
|
||||
'connectingGlidera': gettext('Connecting to Glidera...'),
|
||||
'importingWallet': gettext('Importing Wallet...'),
|
||||
'sweepingWallet': gettext('Sweeping Wallet...'),
|
||||
'connectingledger': gettext('Waiting for Ledger...'),
|
||||
'connectingtrezor': gettext('Waiting for Trezor...'),
|
||||
'creatingTx': gettext('Creating transaction'),
|
||||
'creatingWallet': gettext('Creating Wallet...'),
|
||||
'deletingWallet': gettext('Deleting Wallet...'),
|
||||
'extractingWalletInfo': gettext('Extracting Wallet Information...'),
|
||||
'fetchingPayPro': gettext('Fetching Payment Information'),
|
||||
'generatingCSV': gettext('Generating .csv file...'),
|
||||
'gettingFeeLevels': gettext('Getting fee levels...'),
|
||||
'importingWallet': gettext('Importing Wallet...'),
|
||||
'joiningWallet': gettext('Joining Wallet...'),
|
||||
'recreating': gettext('Recreating Wallet...'),
|
||||
'rejectTx': gettext('Rejecting payment proposal'),
|
||||
'removeTx': gettext('Deleting payment proposal'),
|
||||
'retrivingInputs': gettext('Retrieving inputs information'),
|
||||
'scanning': gettext('Scanning Wallet funds...'),
|
||||
'sendingTx': gettext('Sending transaction'),
|
||||
'signingTx': gettext('Signing transaction'),
|
||||
'sweepingWallet': gettext('Sweeping Wallet...'),
|
||||
'validatingWallet': gettext('Validating wallet integrity...'),
|
||||
'validatingWords': gettext('Validating recovery phrase...'),
|
||||
};
|
||||
|
||||
root.clear = function() {
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim
|
|||
root.SOFT_CONFIRMATION_LIMIT = 12;
|
||||
root.SAFE_CONFIRMATIONS = 6;
|
||||
|
||||
var errors = bwcService.getErrors();
|
||||
|
||||
// UI Related
|
||||
root.openStatusModal = function(type, txp, cb) {
|
||||
var scope = $rootScope.$new(true);
|
||||
|
|
@ -175,6 +177,9 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim
|
|||
twoStep: true
|
||||
}, function(err, ret) {
|
||||
if (err) {
|
||||
if (err instanceof errors.NOT_AUTHORIZED) {
|
||||
return cb('WALLET_NOT_REGISTERED');
|
||||
}
|
||||
return cb(bwcError.msg(err, gettext('Could not update Wallet')));
|
||||
}
|
||||
return cb(null, ret);
|
||||
|
|
@ -296,7 +301,6 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim
|
|||
};
|
||||
|
||||
var getSavedTxs = function(walletId, cb) {
|
||||
|
||||
storageService.getTxHistory(walletId, function(err, txs) {
|
||||
if (err) return cb(err);
|
||||
|
||||
|
|
@ -671,41 +675,30 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim
|
|||
});
|
||||
};
|
||||
|
||||
// walletHome
|
||||
root.recreate = function(wallet, cb) {
|
||||
$log.debug('Recreating wallet:', wallet.id);
|
||||
ongoingProcess.set('recreating', true);
|
||||
wallet.recreateWallet(function(err) {
|
||||
wallet.notAuthorized = false;
|
||||
ongoingProcess.set('recreating', false);
|
||||
|
||||
if (err) {
|
||||
handleError(err);
|
||||
return;
|
||||
}
|
||||
root.startScan(wallet);
|
||||
|
||||
// TODO TODO TODO TODO:
|
||||
// Do it on the controller
|
||||
// profileService.bindWalletClient(wallet, {
|
||||
// force: true
|
||||
// });
|
||||
return cb(err);
|
||||
});
|
||||
};
|
||||
|
||||
root.startScan = function(wallet) {
|
||||
$log.debug('Scanning wallet ' + wallet.credentials.walletId);
|
||||
root.startScan = function(wallet, cb) {
|
||||
cb = cb || function() {};
|
||||
|
||||
$log.debug('Scanning wallet ' + wallet.id);
|
||||
if (!wallet.isComplete()) return;
|
||||
|
||||
// wallet.updating = true;
|
||||
|
||||
wallet.updating = true;
|
||||
ongoingProcess.set('scanning', true);
|
||||
wallet.startScan({
|
||||
includeCopayerBranches: true,
|
||||
}, function(err) {
|
||||
|
||||
if (err && wallet.walletId == walletId) {
|
||||
wallet.updating = false;
|
||||
handleError(err);
|
||||
}
|
||||
wallet.updating = false;
|
||||
ongoingProcess.set('scanning', false);
|
||||
return cb(err);
|
||||
});
|
||||
};
|
||||
|
||||
|
|
@ -861,7 +854,7 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim
|
|||
askPassword(wallet.name, gettext('Enter Spending Password'), function(password) {
|
||||
if (!password) return cb('no password');
|
||||
if (!wallet.checkPassword(password)) return cb('wrong password');
|
||||
|
||||
|
||||
|
||||
return cb(null, password);
|
||||
});
|
||||
|
|
@ -956,8 +949,7 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim
|
|||
|
||||
$rootScope.$emit('Local/TxAction', wallet.id);
|
||||
var type = root.getViewStatus(wallet, broadcastedTxp);
|
||||
root.openStatusModal(type, broadcastedTxp, function() {
|
||||
});
|
||||
root.openStatusModal(type, broadcastedTxp, function() {});
|
||||
|
||||
return cb(null, broadcastedTxp)
|
||||
});
|
||||
|
|
@ -965,8 +957,7 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim
|
|||
$rootScope.$emit('Local/TxAction', wallet.id);
|
||||
|
||||
var type = root.getViewStatus(wallet, signedTxp);
|
||||
root.openStatusModal(type, signedTxp, function() {
|
||||
});
|
||||
root.openStatusModal(type, signedTxp, function() {});
|
||||
return cb(null, signedTxp);
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -21,6 +21,10 @@
|
|||
padding-left: 74px;
|
||||
}
|
||||
|
||||
.item-no-bottom-border + .item {
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
.icon.big-icon-svg {
|
||||
padding: 0 7px;
|
||||
> img {
|
||||
|
|
@ -30,7 +34,7 @@
|
|||
box-shadow: 0px 6px 12px 0px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
}
|
||||
.overlay{
|
||||
.overlay {
|
||||
position: absolute;
|
||||
top:0;
|
||||
left:0;
|
||||
|
|
@ -72,3 +76,7 @@ ion-header-bar{
|
|||
border:none;
|
||||
}
|
||||
}
|
||||
|
||||
.border-top{
|
||||
border-top:1px solid rgb(228,228,228);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -772,6 +772,10 @@ ul.wallet-selection.wallets {
|
|||
margin: 30px 0;
|
||||
}
|
||||
|
||||
.m15v {
|
||||
margin: 15px 0;
|
||||
}
|
||||
|
||||
.m10h {
|
||||
margin: 0 10px;
|
||||
}
|
||||
|
|
@ -897,44 +901,6 @@ input[type=file] {
|
|||
font-size: 16px;
|
||||
}
|
||||
|
||||
/*
|
||||
* Calculator
|
||||
*/
|
||||
|
||||
.calculator .header-calc {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.calculator .button-calc {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.calculator .button-calc .row {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.calculator .button-calc .columns {
|
||||
cursor: pointer;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.calculator .button-calc .operator {
|
||||
color: #2C3E50;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
.calculator .button-calc .columns:active {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
.calculator .button-calc .operator:active {
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
|
||||
// No looks likes locked
|
||||
input[type="number"] {
|
||||
&[readonly] {
|
||||
|
|
@ -994,8 +960,12 @@ input[type=number] {
|
|||
@import "forms";
|
||||
@import 'mixins/mixins';
|
||||
@import "views/add";
|
||||
@import "views/amount";
|
||||
@import "views/tab-home";
|
||||
@import "views/tab-receive";
|
||||
@import "views/tab-send";
|
||||
@import "views/walletDetails";
|
||||
@import "views/bitpayCard";
|
||||
@import 'views/onboarding/onboarding';
|
||||
@import "views/includes/walletActivity";
|
||||
@import "views/includes/wallets";
|
||||
|
|
|
|||
88
src/sass/views/amount.scss
Normal file
88
src/sass/views/amount.scss
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
#view-amount {
|
||||
@media(max-width: 480px) {
|
||||
.bitcoin-address {
|
||||
.icon {
|
||||
left: 8px;
|
||||
font-size: 24px;
|
||||
}
|
||||
font-size: 11px;
|
||||
padding-left: 48px;
|
||||
}
|
||||
}
|
||||
|
||||
.amount-pane {
|
||||
position: absolute;
|
||||
top: 125px;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
background-color: #fff;
|
||||
padding: 0 16px;
|
||||
|
||||
.amount-bar {
|
||||
padding: 24px 0;
|
||||
font-size: 18px;
|
||||
.title {
|
||||
float: left;
|
||||
padding-top: 10px;
|
||||
}
|
||||
}
|
||||
.amount {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
flex-grow: 1;
|
||||
position: absolute;
|
||||
bottom: 254px;
|
||||
top: 66px;
|
||||
}
|
||||
}
|
||||
|
||||
.keypad {
|
||||
text-align: center;
|
||||
font-size: 24px;
|
||||
font-weight: lighter;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
|
||||
.row {
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.col {
|
||||
line-height: 40px;
|
||||
}
|
||||
|
||||
.operator {
|
||||
background-color: #eaeaea;
|
||||
font-weight: normal;
|
||||
cursor: pointer;
|
||||
|
||||
&:active {
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
}
|
||||
|
||||
.operator-send {
|
||||
font-weight: bolder;
|
||||
background-color: #f7f7f7;
|
||||
font-size: 36px;
|
||||
cursor: pointer;
|
||||
|
||||
&:active {
|
||||
background-color: #eaeaea;
|
||||
}
|
||||
}
|
||||
|
||||
.digit{
|
||||
cursor: pointer;
|
||||
border-top: 1px solid #eaeaea;
|
||||
border-left: 1px solid #eaeaea;
|
||||
&:active {
|
||||
background-color: #eaeaea;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
33
src/sass/views/includes/wallets.scss
Normal file
33
src/sass/views/includes/wallets.scss
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
.wallets{
|
||||
.slides{
|
||||
.swiper-container{
|
||||
width:75% !important;
|
||||
overflow:visible;
|
||||
}
|
||||
.card{
|
||||
padding: .7rem;
|
||||
padding-left:.25rem;
|
||||
padding-right:.25rem;
|
||||
border-radius: .25rem;
|
||||
}
|
||||
.swiper-slide{
|
||||
width:100% !important;
|
||||
&.swiper-slide-prev, &.swiper-slide-next{
|
||||
opacity: .2;
|
||||
}
|
||||
&.swiper-slide-prev{
|
||||
left:-5%;
|
||||
}
|
||||
&.swiper-slide-next{
|
||||
left:4%;
|
||||
}
|
||||
span{
|
||||
float:right;
|
||||
clear:both;
|
||||
}
|
||||
}
|
||||
}
|
||||
.swiper-pagination{
|
||||
visibility: hidden;
|
||||
}
|
||||
}
|
||||
91
src/sass/views/tab-receive.scss
Normal file
91
src/sass/views/tab-receive.scss
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
#tab-receive {
|
||||
ion-header-bar{
|
||||
button{
|
||||
i{
|
||||
color:#fff;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
#address {
|
||||
background: #fff;
|
||||
.item {
|
||||
border: none;
|
||||
font-size: .8rem;
|
||||
i {
|
||||
font-size: 1.3rem;
|
||||
&.ion-social-bitcoin-outline {
|
||||
border-right: 1px solid rgb(228, 228, 228);
|
||||
}
|
||||
}
|
||||
}
|
||||
.bit-address {
|
||||
font-size: .8rem;
|
||||
.item {
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
&-gen-address {}
|
||||
}
|
||||
}
|
||||
#wallets {
|
||||
position: relative;
|
||||
&:before {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-style: solid;
|
||||
border-width: 0 20px 20px 20px;
|
||||
border-color: transparent transparent #f5f5f5 transparent;
|
||||
top: -9px;
|
||||
position: absolute;
|
||||
left: 45%;
|
||||
}
|
||||
}
|
||||
#first-time-tip {
|
||||
background: rgba(30, 49, 134, 1);
|
||||
background: -moz-linear-gradient(top, rgba(30, 49, 134, 1) 0%, rgba(30, 49, 134, 0) 88%, rgba(30, 49, 134, 0) 100%);
|
||||
background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(30, 49, 134, 1)), color-stop(88%, rgba(30, 49, 134, 0)), color-stop(100%, rgba(30, 49, 134, 0)));
|
||||
background: -webkit-linear-gradient(top, rgba(30, 49, 134, 1) 0%, rgba(30, 49, 134, 0) 88%, rgba(30, 49, 134, 0) 100%);
|
||||
background: -o-linear-gradient(top, rgba(30, 49, 134, 1) 0%, rgba(30, 49, 134, 0) 88%, rgba(30, 49, 134, 0) 100%);
|
||||
background: -ms-linear-gradient(top, rgba(30, 49, 134, 1) 0%, rgba(30, 49, 134, 0) 88%, rgba(30, 49, 134, 0) 100%);
|
||||
background: linear-gradient(to bottom, rgba(30, 49, 134, 1) 0%, rgba(30, 49, 134, 0) 88%, rgba(30, 49, 134, 0) 100%);
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
opacity: 0;
|
||||
animation-name: fadeIn;
|
||||
animation-iteration-count: 1;
|
||||
animation-timing-function: ease-in;
|
||||
animation-duration: .4s;
|
||||
animation-delay: 2s;
|
||||
animation-fill-mode: forwards;
|
||||
z-index: 10;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
padding-top: 3rem;
|
||||
.close {
|
||||
top: .5rem;
|
||||
right: 1rem;
|
||||
position: absolute;
|
||||
font-size: 1.5rem;
|
||||
opacity: .5;
|
||||
}
|
||||
h3 {
|
||||
color: #fff;
|
||||
margin-bottom:1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fadeIn {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
14
src/sass/views/tab-send.scss
Normal file
14
src/sass/views/tab-send.scss
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
#tab-send {
|
||||
.bitcoin-address {
|
||||
@media(max-width: 480px) {
|
||||
input {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
.icon {
|
||||
line-height: 31px;
|
||||
padding-top: 2px;
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue