From 4f9799fea7caf0df86920e032d54bbd4430182cf Mon Sep 17 00:00:00 2001 From: epiqueras Date: Fri, 18 May 2018 22:00:30 -0500 Subject: [PATCH 1/5] feat(home): implement new design --- src/components/button/button.scss | 1 - src/components/button/index.js | 5 +- .../home/__snapshots__/home.test.js.snap | 216 +++++++++++++----- src/containers/home/home.scss | 31 ++- src/containers/home/index.js | 41 ++-- 5 files changed, 213 insertions(+), 81 deletions(-) diff --git a/src/components/button/button.scss b/src/components/button/button.scss index e78a566..bddee23 100755 --- a/src/components/button/button.scss +++ b/src/components/button/button.scss @@ -2,7 +2,6 @@ /* @define Button */ .Button { - // stylelint-disable-next-line declaration-colon-newline-after background: $primary; border-radius: 5px; box-shadow: 0 2px 0 0 $primary; diff --git a/src/components/button/index.js b/src/components/button/index.js index 65a2e28..5b3a781 100755 --- a/src/components/button/index.js +++ b/src/components/button/index.js @@ -26,7 +26,7 @@ Button.propTypes = { .isRequired, // Handlers - onClick: PropTypes.func.isRequired, + onClick: PropTypes.func, // Modifiers disabled: PropTypes.bool, @@ -35,6 +35,9 @@ Button.propTypes = { } Button.defaultProps = { + // Handlers + onClick: null, + // Modifiers disabled: false, className: '', diff --git a/src/containers/home/__snapshots__/home.test.js.snap b/src/containers/home/__snapshots__/home.test.js.snap index fd4e66c..7da388c 100644 --- a/src/containers/home/__snapshots__/home.test.js.snap +++ b/src/containers/home/__snapshots__/home.test.js.snap @@ -2900,33 +2900,60 @@ exports[`Renders and loads an IICO contract's data after submitting an address. seed="0xE8561C00C9d2857c54Fc847C05FcD7f7fB1d5E3C" />

- Go To - - +
+
- Simple - - / - - + Simple +

+

+ Use the simple interface if you just want to buy tokens in a simple manner. +

+ + + + +
- Interactive - - - IICO Page - -

- Use the simple interface if you just want to buy tokens in a simple manner. -

-

- Use the interactive interface if you want to place sophisticated bids with personal caps on the amount raised. -

+

+ Interactive +

+

+ Use the interactive interface if you want to place sophisticated bids with personal caps on the amount raised. +

+ + + +
+ } failedLoading="The address or the contract it holds is invalid. Try another one." @@ -2981,59 +3008,128 @@ exports[`Renders and loads an IICO contract's data after submitting an address.

+ Go To Simple or Interactive IICO +

+
- Go To - - - Simple - - - / - - +

+ Use the simple interface if you just want to buy tokens in a simple manner. +

+ + + + + +
+
- Interactive - - - - IICO Page - -

- Use the simple interface if you just want to buy tokens in a simple manner. -

-

- Use the interactive interface if you want to place sophisticated bids with personal caps on the amount raised. -

+ +

+ Use the interactive interface if you want to place sophisticated bids with personal caps on the amount raised. +

+ + + + + +
+ diff --git a/src/containers/home/home.scss b/src/containers/home/home.scss index 3212315..93e89e2 100755 --- a/src/containers/home/home.scss +++ b/src/containers/home/home.scss @@ -6,7 +6,7 @@ display: flex; flex-direction: column; height: 100%; - padding: 10px 20px; + padding: 10px 20px 40px; text-align: center; &-form-fieldset-fields { @@ -17,10 +17,33 @@ align-items: center; display: flex; flex-direction: column; - margin-top: 37px; + margin-top: 20px; - &-link { - margin: 15px; + &-title { + margin-top: 40px; + } + + &-options { + display: flex; + flex-wrap: wrap; + max-width: 75%; + + &-option { + background-color: $light; + border: 1px solid $light3; + border-radius: 5px; + /* stylelint-disable declaration-colon-newline-after, value-list-comma-newline-after */ + box-shadow: 0 0 6px 0 rgba(71, 82, 93, 0.09), + 0 0 1px 0 rgba(77, 78, 90, 0.08), 0 1px 0 0 rgba(71, 82, 93, 0.09); + /* stylelint-enable */ + display: flex; + flex: 1; + flex-direction: column; + justify-content: space-between; + margin: 17.5px 15px 0; + max-width: 500px; + padding: 20px 55px; + } } } } diff --git a/src/containers/home/index.js b/src/containers/home/index.js index bc8b57c..59746f3 100755 --- a/src/containers/home/index.js +++ b/src/containers/home/index.js @@ -7,6 +7,7 @@ import { RenderIf } from 'lessdux' import * as IICOSelectors from '../../reducers/iico' import * as IICOActions from '../../actions/iico' import Identicon from '../../components/identicon' +import Button from '../../components/button' import { IICOAddressForm, @@ -100,22 +101,32 @@ class Home extends PureComponent { IICOData.data && (
-

- Go To{' '} - Simple /{' '} - - Interactive - {' '} - IICO Page +

+ Go To Simple or Interactive IICO

-

- Use the simple interface if you just want to buy tokens in a - simple manner. -

-

- Use the interactive interface if you want to place - sophisticated bids with personal caps on the amount raised. -

+
+
+

Simple

+

+ Use the simple interface if you just want to buy tokens in + a simple manner. +

+ + + +
+
+

Interactive

+

+ Use the interactive interface if you want to place + sophisticated bids with personal caps on the amount + raised. +

+ + + +
+
) } From 86dc063a9865d8fc54f4f2db55362809ce20ccf4 Mon Sep 17 00:00:00 2001 From: epiqueras Date: Fri, 18 May 2018 22:07:23 -0500 Subject: [PATCH 2/5] refactor(home): improve new design implementation --- src/containers/home/index.js | 43 ++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/src/containers/home/index.js b/src/containers/home/index.js index 59746f3..d750bf8 100755 --- a/src/containers/home/index.js +++ b/src/containers/home/index.js @@ -105,27 +105,28 @@ class Home extends PureComponent { Go To Simple or Interactive IICO
-
-

Simple

-

- Use the simple interface if you just want to buy tokens in - a simple manner. -

- - - -
-
-

Interactive

-

- Use the interactive interface if you want to place - sophisticated bids with personal caps on the amount - raised. -

- - - -
+ {[ + { + title: 'Simple', + text: + 'Use the simple interface if you just want to buy tokens in a simple manner.', + path: 'simple' + }, + { + title: 'Interactive', + text: + 'Use the interactive interface if you want to place sophisticated bids with personal caps on the amount raised.', + path: 'interactive' + } + ].map(option => ( +
+

{option.title}

+

{option.text}

+ + + +
+ ))}
) From ce9a6991d9d38b63d67e1f1ef74a8bea38677a25 Mon Sep 17 00:00:00 2001 From: epiqueras Date: Mon, 21 May 2018 12:20:31 -0500 Subject: [PATCH 3/5] feat(simple-bid): new design --- package.json | 3 ++ src/bootstrap/app.js | 1 + src/bootstrap/fontawesome.js | 4 +++ src/containers/simple-bid/index.js | 20 +++++++++---- src/containers/simple-bid/simple-bid.scss | 36 ++++++++++++++++++++++- src/styles/_typography.scss | 2 +- yarn.lock | 27 +++++++++++++++++ 7 files changed, 85 insertions(+), 8 deletions(-) create mode 100644 src/bootstrap/fontawesome.js diff --git a/package.json b/package.json index a77ffc0..e9ec748 100755 --- a/package.json +++ b/package.json @@ -74,6 +74,9 @@ "timezone-mock": "^0.0.7" }, "dependencies": { + "@fortawesome/fontawesome": "^1.1.8", + "@fortawesome/fontawesome-free-solid": "^5.0.13", + "@fortawesome/react-fontawesome": "^0.0.20", "create-redux-form": "^0.1.2", "ethjs": "^0.3.3", "ethjs-account": "^0.1.4", diff --git a/src/bootstrap/app.js b/src/bootstrap/app.js index aeef7dd..224d459 100755 --- a/src/bootstrap/app.js +++ b/src/bootstrap/app.js @@ -14,6 +14,7 @@ import PageNotFound from '../containers/page-not-found' import Initializer from './initializer' import GlobalComponents from './global-components' import { ETHAddressRegExpCaptureGroup, ETHAddressRegExp } from './dapp-api' +import './fontawesome' import './app.css' diff --git a/src/bootstrap/fontawesome.js b/src/bootstrap/fontawesome.js new file mode 100644 index 0000000..1acc09b --- /dev/null +++ b/src/bootstrap/fontawesome.js @@ -0,0 +1,4 @@ +import { library } from '@fortawesome/fontawesome' +import faExclamationCircle from '@fortawesome/fontawesome-free-solid/faExclamationCircle' + +library.add(faExclamationCircle) diff --git a/src/containers/simple-bid/index.js b/src/containers/simple-bid/index.js index 57d86ac..1b3e8f3 100644 --- a/src/containers/simple-bid/index.js +++ b/src/containers/simple-bid/index.js @@ -2,6 +2,7 @@ import React, { PureComponent } from 'react' import PropTypes from 'prop-types' import { connect } from 'react-redux' import { RenderIf } from 'lessdux' +import FontAwesomeIcon from '@fortawesome/react-fontawesome' import * as IICOSelectors from '../../reducers/iico' import * as IICOActions from '../../actions/iico' @@ -77,7 +78,7 @@ class SimpleBid extends PureComponent { target="_blank" rel="noopener noreferrer" > - KYC + KYC ) : ( 'KYC' @@ -104,15 +105,22 @@ class SimpleBid extends PureComponent { failedLoading={null} />

-

- +

+ +
DON'T SEND YOUR TRANSACTION FROM AN EXCHANGE OR YOUR FUNDS WILL BE LOST. - -

+
+
{address && (
- Contract Address: {address} + Contract Address: +
+ {address} +
Identicon: diff --git a/src/containers/simple-bid/simple-bid.scss b/src/containers/simple-bid/simple-bid.scss index 76eeb58..6d30396 100644 --- a/src/containers/simple-bid/simple-bid.scss +++ b/src/containers/simple-bid/simple-bid.scss @@ -1,15 +1,49 @@ +@import '../../styles/_colors.scss'; + /* @define SimpleBid */ .SimpleBid { + margin: 0 auto; + max-width: calc(590px + 30%); padding: 25px 15% 50px; text-align: justify; + &-warning { + align-items: center; + background: $primary; + border-radius: 4px; + color: $light; + display: flex; + font-size: 0.68rem; + font-weight: 300; + margin: 24px 0; + padding: 25px; + + &-icon { + display: block; + font-size: 1rem; + margin-right: 13px; + } + } + &-addressInfo { text-align: left; + &-address { + background: $light; + border: 1px solid $light3; + border-radius: 5px; + /* stylelint-disable declaration-colon-newline-after, value-list-comma-newline-after */ + box-shadow: 0 0 6px 0 rgba(71, 82, 93, 0.09), + 0 0 1px 0 rgba(77, 78, 90, 0.08), 0 1px 0 0 rgba(71, 82, 93, 0.09); + /* stylelint-enable */ + margin-top: 18.5px; + padding: 25px; + } + &-blocks { display: flex; justify-content: space-evenly; - margin-top: 24px; + margin: 36.5px 0 21px; } } } diff --git a/src/styles/_typography.scss b/src/styles/_typography.scss index 4c8afd2..96d96a0 100644 --- a/src/styles/_typography.scss +++ b/src/styles/_typography.scss @@ -89,7 +89,7 @@ h4 { p { color: $dark3; font-size: 0.875rem; - line-height: 1.0625rem; + line-height: 1.45rem; } // Modifiers diff --git a/yarn.lock b/yarn.lock index f4b4a0a..93b4b97 100644 --- a/yarn.lock +++ b/yarn.lock @@ -259,6 +259,29 @@ version "0.6.2" resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.6.2.tgz#19a39bda906e5ba45f39f6f7f3512b2740ceab29" +"@fortawesome/fontawesome-common-types@^0.1.7": + version "0.1.7" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.1.7.tgz#4336c4b06d0b5608ff1215464b66fcf9f4795284" + +"@fortawesome/fontawesome-free-solid@^5.0.13": + version "5.0.13" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free-solid/-/fontawesome-free-solid-5.0.13.tgz#24b61aaf471a9d34a5364b052d64a516285ba894" + dependencies: + "@fortawesome/fontawesome-common-types" "^0.1.7" + +"@fortawesome/fontawesome@^1.1.8": + version "1.1.8" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome/-/fontawesome-1.1.8.tgz#75fe66a60f95508160bb16bd781ad7d89b280f5b" + dependencies: + "@fortawesome/fontawesome-common-types" "^0.1.7" + +"@fortawesome/react-fontawesome@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@fortawesome/react-fontawesome/-/react-fontawesome-0.0.20.tgz#5ec711f3a032c13643e454b360112b6346a276d6" + dependencies: + humps "^2.0.1" + prop-types "^15.5.7" + "@marionebl/sander@^0.6.0": version "0.6.1" resolved "https://registry.yarnpkg.com/@marionebl/sander/-/sander-0.6.1.tgz#1958965874f24bc51be48875feb50d642fc41f7b" @@ -6141,6 +6164,10 @@ https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" +humps@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/humps/-/humps-2.0.1.tgz#dd02ea6081bd0568dc5d073184463957ba9ef9aa" + husky@^0.14.3: version "0.14.3" resolved "https://registry.yarnpkg.com/husky/-/husky-0.14.3.tgz#c69ed74e2d2779769a17ba8399b54ce0b63c12c3" From ab477added29cf08fd1747833a92eda819e00672 Mon Sep 17 00:00:00 2001 From: epiqueras Date: Mon, 21 May 2018 13:16:47 -0500 Subject: [PATCH 4/5] feat(requires-meta-mask): new design --- src/assets/images/meta-mask-logo.png | Bin 0 -> 24440 bytes .../__snapshots__/storyshots.test.js.snap | 66 +++++++++++++----- src/components/button/index.js | 2 +- src/components/requires-meta-mask/index.js | 27 +++++-- .../requires-meta-mask/require-meta-mask.scss | 35 +++++++--- .../home/__snapshots__/home.test.js.snap | 8 +-- 6 files changed, 101 insertions(+), 37 deletions(-) create mode 100644 src/assets/images/meta-mask-logo.png diff --git a/src/assets/images/meta-mask-logo.png b/src/assets/images/meta-mask-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..74d8967bb9da5f384e2baf7d35ce29ab95e400a3 GIT binary patch literal 24440 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 literal 0 HcmV?d00001 diff --git a/src/components/__snapshots__/storyshots.test.js.snap b/src/components/__snapshots__/storyshots.test.js.snap index afe2085..e10d58f 100755 --- a/src/components/__snapshots__/storyshots.test.js.snap +++ b/src/components/__snapshots__/storyshots.test.js.snap @@ -88,11 +88,11 @@ exports[`Storyshots Button disabled 1`] = ` className="Button is-disabled " onClick={null} > - CLICK ME - +
- CLICK ME - +
- CLICK ME, CLICK ME, CLICK ME - +
+ MetaMask Logo
This is a decentralized application. In order to use this site please + unlock + MetaMask. - unlock - MetaMask +
+
+ Unlock + MetaMask +
+
- .
+ MetaMask Logo
This is a decentralized application. In order to use this site please + download + MetaMask. - download - MetaMask +
+
+ Download + MetaMask +
+
- .
- {children} +
{children}
) diff --git a/src/components/requires-meta-mask/index.js b/src/components/requires-meta-mask/index.js index a02e809..ebbe04d 100755 --- a/src/components/requires-meta-mask/index.js +++ b/src/components/requires-meta-mask/index.js @@ -1,21 +1,36 @@ import React from 'react' import PropTypes from 'prop-types' +import metaMaskLogo from '../../assets/images/meta-mask-logo.png' +import Button from '../button' + import './require-meta-mask.css' const RequiresMetaMask = ({ needsUnlock }) => (
-
+ MetaMask Logo +
This is a decentralized application. In order to use this site please{' '} + {needsUnlock ? 'unlock' : 'download'} MetaMask. - {needsUnlock ? 'unlock ' : 'download '} - MetaMask - . + +
) diff --git a/src/components/requires-meta-mask/require-meta-mask.scss b/src/components/requires-meta-mask/require-meta-mask.scss index 55d2b36..d75f29d 100755 --- a/src/components/requires-meta-mask/require-meta-mask.scss +++ b/src/components/requires-meta-mask/require-meta-mask.scss @@ -2,17 +2,34 @@ /* @define RequiresMetaMask */ .RequiresMetaMask { - height: 100%; + align-items: center; + background: $light; + border: 1px solid $light3; + color: $dark; + display: flex; + flex-wrap: wrap; + font-size: 1.5rem; + justify-content: center; + line-height: 2.8125rem; + margin: 60px 15%; + padding: 5% 5% 5% 0; - &-message { - color: $dark; - font-size: 40px; - padding: 70px 50px; - text-align: center; + &-logo { + margin: 15px 41px; + width: 100px; + } + + &-content { + display: flex; + flex: 1 1; + flex-direction: column; + justify-content: space-between; + margin-left: 15px; - &-link { - color: $dark4; - text-decoration: none; + &-button { + font-weight: 700; + margin-top: 25px; + max-width: 280px; } } } diff --git a/src/containers/home/__snapshots__/home.test.js.snap b/src/containers/home/__snapshots__/home.test.js.snap index 7da388c..644cda7 100644 --- a/src/containers/home/__snapshots__/home.test.js.snap +++ b/src/containers/home/__snapshots__/home.test.js.snap @@ -3062,13 +3062,13 @@ exports[`Renders and loads an IICO contract's data after submitting an address. location={undefined} onClick={null} > - Go - +
@@ -3117,13 +3117,13 @@ exports[`Renders and loads an IICO contract's data after submitting an address. location={undefined} onClick={null} > - Go - + From 932c069bd1e7a8855a07014d39ef2394106b0a05 Mon Sep 17 00:00:00 2001 From: epiqueras Date: Mon, 21 May 2018 13:20:22 -0500 Subject: [PATCH 5/5] feat(simple-bid): improve responsive design --- src/containers/simple-bid/simple-bid.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/src/containers/simple-bid/simple-bid.scss b/src/containers/simple-bid/simple-bid.scss index 6d30396..c692617 100644 --- a/src/containers/simple-bid/simple-bid.scss +++ b/src/containers/simple-bid/simple-bid.scss @@ -17,6 +17,7 @@ font-weight: 300; margin: 24px 0; padding: 25px; + text-align: left; &-icon { display: block;