From fe3e1a192ad9cb7a3203fdcb6a9306ef6c0a4d32 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Thu, 15 Jun 2017 18:54:34 +0200 Subject: [PATCH 01/62] drop da base --- _src/_assets/javascripts/page-start.js | 14 +++++++ _src/_assets/styles/_page-start.scss | 5 +++ _src/_assets/styles/bigchain.scss | 1 + _src/_data/menus.yml | 4 +- _src/_includes/hero.html | 2 +- _src/start.html | 56 ++++++++++++++++++++++++++ 6 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 _src/_assets/javascripts/page-start.js create mode 100644 _src/_assets/styles/_page-start.scss create mode 100644 _src/start.html diff --git a/_src/_assets/javascripts/page-start.js b/_src/_assets/javascripts/page-start.js new file mode 100644 index 0000000..bfea3a7 --- /dev/null +++ b/_src/_assets/javascripts/page-start.js @@ -0,0 +1,14 @@ + +//=include bigchain/smoothscroll.js +//=include bigchain/github.js +//=include bigchain/meetup.js +//=include bigchain/newsletter.js + +jQuery(function($) { + + // + // init modules + // + Newsletter.init() + +}); diff --git a/_src/_assets/styles/_page-start.scss b/_src/_assets/styles/_page-start.scss new file mode 100644 index 0000000..9fa3907 --- /dev/null +++ b/_src/_assets/styles/_page-start.scss @@ -0,0 +1,5 @@ +// +// Page: Get started +// --- +// bigchaindb.com +// diff --git a/_src/_assets/styles/bigchain.scss b/_src/_assets/styles/bigchain.scss index d47c537..cfd9ede 100644 --- a/_src/_assets/styles/bigchain.scss +++ b/_src/_assets/styles/bigchain.scss @@ -49,6 +49,7 @@ // specific page styles @import 'page-front'; +@import 'page-start'; @import 'page-whitepaper'; @import 'page-404'; @import 'page-styleguide'; diff --git a/_src/_data/menus.yml b/_src/_data/menus.yml index 57d2e31..a9ff378 100644 --- a/_src/_data/menus.yml +++ b/_src/_data/menus.yml @@ -1,11 +1,11 @@ --- main: + - title: Get started + url: "/start/" - title: Features url: "/features/" - title: Use Cases url: "/usecases/" - - title: Community - url: "/community/" - title: Enterprise url: "/enterprise/" - title: Docs diff --git a/_src/_includes/hero.html b/_src/_includes/hero.html index 3778504..fa29b61 100644 --- a/_src/_includes/hero.html +++ b/_src/_includes/hero.html @@ -5,7 +5,7 @@

{{ page.tagline }}

- Quick Start + Get Started
diff --git a/_src/start.html b/_src/start.html new file mode 100644 index 0000000..2166843 --- /dev/null +++ b/_src/start.html @@ -0,0 +1,56 @@ +--- +layout: page + +title: Get started +description: "" + +js: page-start.min.js +--- + +
+
+
+

Rather than trying to scale up blockchain technology, BigchainDB starts with a big data distributed database and then adds blockchain characteristics - decentralized control, immutability and the transfer of digital assets.

+
+
+
+
+ +
+
+
+ + + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
From 16a63001f0edc83f5d458bdf13dfbe9f6cce014e Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Thu, 15 Jun 2017 19:16:45 +0200 Subject: [PATCH 02/62] eliminate community page --- .../{page-community.js => page-getstarted.js} | 50 ++++++++++--------- _src/_assets/javascripts/page-start.js | 14 ------ ...e-community.scss => _page-getstarted.scss} | 10 +--- _src/_assets/styles/_page-start.scss | 5 -- _src/_assets/styles/bigchain.scss | 3 +- _src/_data/menus.yml | 10 ++-- _src/community.html | 48 ------------------ _src/start.html | 42 ++++++++++++++-- 8 files changed, 73 insertions(+), 109 deletions(-) rename _src/_assets/javascripts/{page-community.js => page-getstarted.js} (57%) delete mode 100644 _src/_assets/javascripts/page-start.js rename _src/_assets/styles/{_page-community.scss => _page-getstarted.scss} (96%) delete mode 100644 _src/_assets/styles/_page-start.scss delete mode 100644 _src/community.html diff --git a/_src/_assets/javascripts/page-community.js b/_src/_assets/javascripts/page-getstarted.js similarity index 57% rename from _src/_assets/javascripts/page-community.js rename to _src/_assets/javascripts/page-getstarted.js index 1411d04..2ce5ce7 100644 --- a/_src/_assets/javascripts/page-community.js +++ b/_src/_assets/javascripts/page-getstarted.js @@ -1,52 +1,56 @@ - -//=include is-in-viewport/lib/isInViewport.js +//=include bigchain/smoothscroll.js //=include bigchain/newsletter.js -//=include bigchain/testimonials.js +//=include is-in-viewport/lib/isInViewport.js jQuery(function($) { + // + // init modules + // Newsletter.init() - Testimonials.init() + + // + // Wrigley + // var wrigley = $('#wrigley'), wrigleyArm = wrigley.find('#arm'), wrigleyHead = wrigley.find('#head'), - wrigleyEye = wrigley.find('#eye'); + wrigleyEye = wrigley.find('#eye') var wrigleyAnimationStart = function() { // set utility classes if (wrigley.is( ':in-viewport( -180 )' ) ) { - wrigley.addClass('is-ready'); + wrigley.addClass('is-ready') // toggle paused class so the :hover interaction can fire animation again wrigleyArm.on('animationend webkitAnimationEnd oAnimationEnd', function(e) { - wrigleyArm.addClass('paused'); - wrigleyHead.addClass('paused'); + wrigleyArm.addClass('paused') + wrigleyHead.addClass('paused') wrigley.on('mouseover', function() { - wrigleyArm.removeClass('paused'); - wrigleyHead.removeClass('paused'); - }); + wrigleyArm.removeClass('paused') + wrigleyHead.removeClass('paused') + }) // fire eye blinking once other animations have finished - wrigleyEye.addClass('is-ready'); + wrigleyEye.addClass('is-ready') wrigleyEye.on('animationend webkitAnimationEnd oAnimationEnd', function(e) { - wrigleyEye.removeClass('is-ready'); - }); + wrigleyEye.removeClass('is-ready') + }) } - ); + ) } else { - wrigley.removeClass('is-ready').removeClass('paused'); - wrigleyArm.removeClass('paused'); - wrigleyHead.removeClass('paused'); - wrigleyEye.removeClass('is-ready').removeClass('paused'); + wrigley.removeClass('is-ready').removeClass('paused') + wrigleyArm.removeClass('paused') + wrigleyHead.removeClass('paused') + wrigleyEye.removeClass('is-ready').removeClass('paused') } } // fire all the viewport things - wrigleyAnimationStart(); - $(window).on('load resize scroll', wrigleyAnimationStart); - -}); + wrigleyAnimationStart() + $(window).on('load resize scroll', wrigleyAnimationStart) +}) diff --git a/_src/_assets/javascripts/page-start.js b/_src/_assets/javascripts/page-start.js deleted file mode 100644 index bfea3a7..0000000 --- a/_src/_assets/javascripts/page-start.js +++ /dev/null @@ -1,14 +0,0 @@ - -//=include bigchain/smoothscroll.js -//=include bigchain/github.js -//=include bigchain/meetup.js -//=include bigchain/newsletter.js - -jQuery(function($) { - - // - // init modules - // - Newsletter.init() - -}); diff --git a/_src/_assets/styles/_page-community.scss b/_src/_assets/styles/_page-getstarted.scss similarity index 96% rename from _src/_assets/styles/_page-community.scss rename to _src/_assets/styles/_page-getstarted.scss index 0f1956e..5198c54 100644 --- a/_src/_assets/styles/_page-community.scss +++ b/_src/_assets/styles/_page-getstarted.scss @@ -1,15 +1,10 @@ // -// Page: Community +// Page: Get started // --- // bigchaindb.com // -.page-community { - .header { - background-position: center top; - } -} -.section-community { +.section--community { text-align: center; position: relative; // make room for wrigely @@ -33,7 +28,6 @@ .icon { @include transition; } - display: inline-block; box-shadow: none; padding: $btn-padding-y-sm $btn-padding-x-sm; diff --git a/_src/_assets/styles/_page-start.scss b/_src/_assets/styles/_page-start.scss deleted file mode 100644 index 9fa3907..0000000 --- a/_src/_assets/styles/_page-start.scss +++ /dev/null @@ -1,5 +0,0 @@ -// -// Page: Get started -// --- -// bigchaindb.com -// diff --git a/_src/_assets/styles/bigchain.scss b/_src/_assets/styles/bigchain.scss index cfd9ede..040f72a 100644 --- a/_src/_assets/styles/bigchain.scss +++ b/_src/_assets/styles/bigchain.scss @@ -49,14 +49,13 @@ // specific page styles @import 'page-front'; -@import 'page-start'; +@import 'page-getstarted'; @import 'page-whitepaper'; @import 'page-404'; @import 'page-styleguide'; @import 'page-about'; @import 'page-features'; @import 'page-usecases'; -@import 'page-community'; @import 'page-contact'; @import 'page-cla'; @import 'page-partners'; diff --git a/_src/_data/menus.yml b/_src/_data/menus.yml index a9ff378..30aff37 100644 --- a/_src/_data/menus.yml +++ b/_src/_data/menus.yml @@ -14,20 +14,22 @@ main: secondary: - title: Whitepaper url: "/whitepaper/" + - title: Blog + url: https://blog.bigchaindb.com - title: About url: "/about/" - title: Contact url: "/contact/" - - title: Blog - url: https://blog.bigchaindb.com community: + - title: Gitter + url: https://gitter.im/bigchaindb/bigchaindb - title: GitHub url: https://github.com/bigchaindb - title: Twitter url: https://twitter.com/BigchainDB - - title: Gitter - url: https://gitter.im/bigchaindb/bigchaindb + - title: Meetup + url: https://www.meetup.com/BigchainDB-IPDB-Meetup legal: - title: Terms diff --git a/_src/community.html b/_src/community.html deleted file mode 100644 index 740b203..0000000 --- a/_src/community.html +++ /dev/null @@ -1,48 +0,0 @@ ---- -layout: page - -title: Community -tagline: "Get Involved" -description: 'There are many ways you can contribute to the BigchainDB project, some very easy and others more involved.' - -image: photo2.jpg - -js: page-community.min.js -quotes: set3 ---- - -
-
-
-

There are many ways you can contribute to the BigchainDB project, some very easy and others more involved. We welcome all potential contributors, so we ask that everyone participating abide by some simple guidelines.

- - Read The Guidelines -
- -
-
-

Follow

-

Follow us for the latest updates

- - {% for link in site.social %} - - {% endfor %} - -
-
- -
- - {% include svg/wrigley-with-stage.svg %} - -
- -{% include sections/section-newsletter.html %} - -{% include sections/section-testimonials.html %} diff --git a/_src/start.html b/_src/start.html index 2166843..50c7043 100644 --- a/_src/start.html +++ b/_src/start.html @@ -4,7 +4,10 @@ layout: page title: Get started description: "" -js: page-start.min.js +js: page-getstarted.min.js + +redirect_from: + - /community/ ---
@@ -31,26 +34,55 @@ js: page-start.min.js -
+
-
+
-
+
-
+
+
+

Get Involved

+

There are many ways you can contribute to the BigchainDB project, some very easy and others more involved. We welcome all potential contributors, so we ask that everyone participating abide by some simple guidelines.

+ + Read The Guidelines +
+ +
+
+

Follow

+

Follow us for the latest updates

+ + {% for link in site.social %} + + {% endfor %} + +
+
+ + {% include svg/wrigley-with-stage.svg %} +
+ +{% include sections/section-newsletter.html %} From e4d00cb16b0cd6de75cc383315e74a34ef099354 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Thu, 15 Jun 2017 21:53:50 +0200 Subject: [PATCH 03/62] wrigley.js --- _src/_assets/javascripts/bigchain/wrigley.js | 48 ++++++++++++++++++++ _src/_assets/javascripts/page-getstarted.js | 47 +------------------ _src/start.html | 2 +- 3 files changed, 50 insertions(+), 47 deletions(-) create mode 100644 _src/_assets/javascripts/bigchain/wrigley.js diff --git a/_src/_assets/javascripts/bigchain/wrigley.js b/_src/_assets/javascripts/bigchain/wrigley.js new file mode 100644 index 0000000..c5e01f3 --- /dev/null +++ b/_src/_assets/javascripts/bigchain/wrigley.js @@ -0,0 +1,48 @@ +//=include is-in-viewport/lib/isInViewport.js + +jQuery(function($) { + + // + // Wrigley + // + var wrigley = $('#wrigley'), + wrigleyArm = wrigley.find('#arm'), + wrigleyHead = wrigley.find('#head'), + wrigleyEye = wrigley.find('#eye') + + var wrigleyAnimationStart = function() { + + // set utility classes + if (wrigley.is( ':in-viewport( -180 )' ) ) { + wrigley.addClass('is-ready') + + // toggle paused class so the :hover interaction can fire animation again + wrigleyArm.on('animationend webkitAnimationEnd oAnimationEnd', function(e) { + wrigleyArm.addClass('paused') + wrigleyHead.addClass('paused') + + wrigley.on('mouseover', function() { + wrigleyArm.removeClass('paused') + wrigleyHead.removeClass('paused') + }) + + // fire eye blinking once other animations have finished + wrigleyEye.addClass('is-ready') + + wrigleyEye.on('animationend webkitAnimationEnd oAnimationEnd', function(e) { + wrigleyEye.removeClass('is-ready') + }) + } + ) + } else { + wrigley.removeClass('is-ready').removeClass('paused') + wrigleyArm.removeClass('paused') + wrigleyHead.removeClass('paused') + wrigleyEye.removeClass('is-ready').removeClass('paused') + } + } + + // fire all the viewport things + wrigleyAnimationStart() + $(window).on('load resize scroll', wrigleyAnimationStart) +}) diff --git a/_src/_assets/javascripts/page-getstarted.js b/_src/_assets/javascripts/page-getstarted.js index 2ce5ce7..6e3cffb 100644 --- a/_src/_assets/javascripts/page-getstarted.js +++ b/_src/_assets/javascripts/page-getstarted.js @@ -1,6 +1,6 @@ //=include bigchain/smoothscroll.js //=include bigchain/newsletter.js -//=include is-in-viewport/lib/isInViewport.js +//=include bigchain/wrigley.js jQuery(function($) { @@ -8,49 +8,4 @@ jQuery(function($) { // init modules // Newsletter.init() - - - // - // Wrigley - // - var wrigley = $('#wrigley'), - wrigleyArm = wrigley.find('#arm'), - wrigleyHead = wrigley.find('#head'), - wrigleyEye = wrigley.find('#eye') - - var wrigleyAnimationStart = function() { - - // set utility classes - if (wrigley.is( ':in-viewport( -180 )' ) ) { - wrigley.addClass('is-ready') - - // toggle paused class so the :hover interaction can fire animation again - wrigleyArm.on('animationend webkitAnimationEnd oAnimationEnd', function(e) { - wrigleyArm.addClass('paused') - wrigleyHead.addClass('paused') - - wrigley.on('mouseover', function() { - wrigleyArm.removeClass('paused') - wrigleyHead.removeClass('paused') - }) - - // fire eye blinking once other animations have finished - wrigleyEye.addClass('is-ready') - - wrigleyEye.on('animationend webkitAnimationEnd oAnimationEnd', function(e) { - wrigleyEye.removeClass('is-ready') - }) - } - ) - } else { - wrigley.removeClass('is-ready').removeClass('paused') - wrigleyArm.removeClass('paused') - wrigleyHead.removeClass('paused') - wrigleyEye.removeClass('is-ready').removeClass('paused') - } - } - - // fire all the viewport things - wrigleyAnimationStart() - $(window).on('load resize scroll', wrigleyAnimationStart) }) diff --git a/_src/start.html b/_src/start.html index 50c7043..d7c2b90 100644 --- a/_src/start.html +++ b/_src/start.html @@ -13,7 +13,7 @@ redirect_from:
-

Rather than trying to scale up blockchain technology, BigchainDB starts with a big data distributed database and then adds blockchain characteristics - decentralized control, immutability and the transfer of digital assets.

+

Get started quickly by installing BigchainDB.

From 03e42d043cb63796cdf283fcf317155c0be0e1d2 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Thu, 15 Jun 2017 22:11:46 +0200 Subject: [PATCH 04/62] prototype driver component --- _src/_assets/styles/_page-getstarted.scss | 54 +++++++++++++++++++++++ _src/start.html | 10 +++++ 2 files changed, 64 insertions(+) diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss index 5198c54..cbb6f35 100644 --- a/_src/_assets/styles/_page-getstarted.scss +++ b/_src/_assets/styles/_page-getstarted.scss @@ -4,6 +4,60 @@ // bigchaindb.com // +.driver { + padding: $spacer; + background: rgba($brand-main-blue-light, .15); + border-top-left-radius: $border-radius; + border-top-right-radius: $border-radius; + display: flex; + flex-wrap: wrap; + justify-content: space-between; + + &:hover, + &:focus { + .driver__title { + color: #fff; + } + + .driver__logo { + background: #fff; + } + } +} + +.driver, +.driver__logo, +.driver__title { + @include transition; +} + +.driver__logo { + width: 3rem; + height: 3rem; + background: $brand-primary; +} + +.driver__title { + color: $brand-primary; + margin: 0; + font-size: $font-size-h3; +} + +.driver__meta { + @include text-small; + width: 100%; + align-self: flex-end; + margin: 0; + + span { + display: block; + } +} + +.driver__version { + opacity: .75; +} + .section--community { text-align: center; position: relative; diff --git a/_src/start.html b/_src/start.html index d7c2b90..ccd5d11 100644 --- a/_src/start.html +++ b/_src/start.html @@ -42,7 +42,17 @@ redirect_from:
From a1a21a91ed596c4b6c80d09003741b995f072b5e Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Thu, 22 Jun 2017 14:31:49 +0200 Subject: [PATCH 05/62] prototype all content blocks --- _src/_assets/styles/_page-getstarted.scss | 24 ++- .../styles/bigchain/_mixins/_backgrounds.scss | 5 +- _src/_data/drivers.yml | 41 +++++ _src/start.html | 143 ++++++++++++++++-- 4 files changed, 192 insertions(+), 21 deletions(-) create mode 100644 _src/_data/drivers.yml diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss index cbb6f35..2a32b7a 100644 --- a/_src/_assets/styles/_page-getstarted.scss +++ b/_src/_assets/styles/_page-getstarted.scss @@ -12,6 +12,7 @@ display: flex; flex-wrap: wrap; justify-content: space-between; + box-shadow: none; &:hover, &:focus { @@ -32,15 +33,16 @@ } .driver__logo { - width: 3rem; - height: 3rem; + width: 2rem; + height: 2rem; background: $brand-primary; } .driver__title { + @extend .h5; color: $brand-primary; - margin: 0; - font-size: $font-size-h3; + margin-top: 0; + margin-bottom: $spacer; } .driver__meta { @@ -58,6 +60,20 @@ opacity: .75; } +.driver--community { + text-align: center; + justify-content: center; + + .driver__title { + width: 100%; + margin-bottom: 0; + } + + .driver__logo { + margin-bottom: $spacer / 2; + } +} + .section--community { text-align: center; position: relative; diff --git a/_src/_assets/styles/bigchain/_mixins/_backgrounds.scss b/_src/_assets/styles/bigchain/_mixins/_backgrounds.scss index b98f3cd..adbc8f3 100644 --- a/_src/_assets/styles/bigchain/_mixins/_backgrounds.scss +++ b/_src/_assets/styles/bigchain/_mixins/_backgrounds.scss @@ -13,7 +13,10 @@ background: $brand-main-gray-lighter; .section-title, - p { + p, + h1, + h2, + h3 { color: $brand-main-gray; } } diff --git a/_src/_data/drivers.yml b/_src/_data/drivers.yml new file mode 100644 index 0000000..ae9a812 --- /dev/null +++ b/_src/_data/drivers.yml @@ -0,0 +1,41 @@ +official: + - title: Python + repo: bigchaindb-driver + version: v0.2.2 + + - title: JavaScript + repo: js-bigchaindb-driver + version: v0.1.1 + + - title: CLI + repo: bdb-transaction-cli + version: v0.2.2 + +community: + - title: Haskell + repo: bigchaindb-hs + + - title: Ruby + repo: bigchaindb_ruby + + - title: Go + repo: bigchaindb-driver-golang + + - title: Java + repo: bigchaindb-java + + - title: Swift + repo: bigchaindb-swift + +tools: + - title: Crypto-Conditions + repo: cryptoconditions + version: v0.5.1 + + - title: ILP ledger plugin + repo: ilp-plugin-bigchaindb + version: v0.1.1 + + - title: COALA IP ledger plugin + repo: pycoalaip-bigchaindb + version: v0.0.4 diff --git a/_src/start.html b/_src/start.html index ccd5d11..32cfd4f 100644 --- a/_src/start.html +++ b/_src/start.html @@ -10,10 +10,29 @@ redirect_from: - /community/ --- +
+
+
+

Get your first transaction into BigchainDB

+

Never wrote something into a blockchain? Now’s your chance: add your message and send off your first transaction to BigchainDB running within IPDB.

+
+
+
+
+
+

Request

+
+
+

Response

+
+
+
+
+
-

Get started quickly by installing BigchainDB.

+

Architecture overview

@@ -35,30 +54,122 @@ redirect_from:
-
- +
+
+

Get Server

+
+
+
+
+
+

IPDB: the public BigchainDB network

+

No need for any installation. Sign up and connect instantly, we handle running a BigchainDB production node for you.

+ Get IPDB +
+
+

BigchainDB Server

+

If you want to run your own BigchainDB instance you can either install on Linux or with Docker on any system.

+ Install BigchainDB Server +
+
-
- -

Python

- +
+
+

Get Drivers & Tools

+
+
+
+

BigchainDB in your language

+

Get one of the drivers to connect to IPDB or your BigchainDB server instance.

+
+
+ +
+

Officially supported tools

+
+ + {% for driver in site.data.drivers.tools %} + + {% endfor %} + +
+
+ +
+

Community supported drivers

+
+ + {% for driver in site.data.drivers.community %} + + {% endfor %} + +
-
+
- +
+

Next Up

+

Dive into our documentation or learn or code.

+
+
+
+
+
+

Tutorials

+
+
+

Code examples

+
+
+

Documentation

+
+
From 80e808600d9675c2d17ea8425e5d9356240485aa Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Thu, 22 Jun 2017 14:52:59 +0200 Subject: [PATCH 06/62] reorganise community section, kick out wrigley --- _src/_assets/javascripts/page-getstarted.js | 1 - _src/_assets/styles/_page-getstarted.scss | 95 +-------------------- _src/start.html | 33 +++++-- 3 files changed, 31 insertions(+), 98 deletions(-) diff --git a/_src/_assets/javascripts/page-getstarted.js b/_src/_assets/javascripts/page-getstarted.js index 6e3cffb..add23db 100644 --- a/_src/_assets/javascripts/page-getstarted.js +++ b/_src/_assets/javascripts/page-getstarted.js @@ -1,6 +1,5 @@ //=include bigchain/smoothscroll.js //=include bigchain/newsletter.js -//=include bigchain/wrigley.js jQuery(function($) { diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss index 2a32b7a..9200410 100644 --- a/_src/_assets/styles/_page-getstarted.scss +++ b/_src/_assets/styles/_page-getstarted.scss @@ -76,13 +76,6 @@ .section--community { text-align: center; - position: relative; - // make room for wrigely - padding-bottom: 200px; - - @media ($screen-lg) { - padding-bottom: 0; - } .section-header { .section-description { margin-bottom: ($spacer * 2); } @@ -146,88 +139,8 @@ } } -.text-milestones { - margin-top: ($spacer * 2); -} - - -// -// wrigley: positioned and animated -// -#wrigley { - @extend .img--responsive; - vertical-align: bottom; - width: 400px; - height: 220px; - position: absolute; - bottom: 0; - right: 0; - - #arm { - transform-origin: right; - } - - #head { - transform-origin: center; - } - - #eye { - transform-origin: center; - } - - #arm, - #head, - #eye { - animation: none; - } - - &:hover, - &.is-ready { - #arm, - #head, - #eye { - &.paused { animation: none; } - } - - #arm { - animation: wrigley-wink 1s ease-in-out; - } - - #head { - animation: wrigley-head-nod 1s ease-in-out; - } - - #eye { - &.is-ready { - animation: wrigley-blink .3s ease-in-out forwards; - animation-iteration-count: 2; - } - } - } -} - -@keyframes wrigley-wink { - 0% { transform: rotate(0); } - - 25%, - 50% { transform: rotate(-20deg); } - - 30%, - 100% { transform: rotate(0); } -} - -@keyframes wrigley-head-nod { - 0% { transform: rotate(0); } - - 25%, - 50% { transform: rotate(-2deg); } - - 30%, - 100% { transform: rotate(0); } -} - -@keyframes wrigley-blink { - 0% { transform: scaleY(1); } - 50% { transform: scaleY(0); } - 100% { transform: scaleY(1); } +.community__actions { + border-bottom: 1px solid $gray-dark; + margin-bottom: $spacer * 3; + padding-bottom: $spacer * 3; } diff --git a/_src/start.html b/_src/start.html index 32cfd4f..4460515 100644 --- a/_src/start.html +++ b/_src/start.html @@ -176,12 +176,36 @@ redirect_from:
-

Get Involved

+

Get involved in the community

There are many ways you can contribute to the BigchainDB project, some very easy and others more involved. We welcome all potential contributors, so we ask that everyone participating abide by some simple guidelines.

- - Read The Guidelines
+
+
+
+
+
Chat on Gitter
+

Start a chat with us on Gitter.

+ + Chat on Gitter + +
+
+
Open an issue
+

So you found a bug? Report it!

+ + Open issue + +
+
+
Guidelines
+

Read up on our community guidelines.

+ Read Guidelines +
+
+
+ +

Follow

@@ -199,11 +223,8 @@ redirect_from:
-
- {% include svg/wrigley-with-stage.svg %} -
{% include sections/section-newsletter.html %} From 0466be7bee1ab562be7102a357964c93358f1eef Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Thu, 22 Jun 2017 16:38:00 +0200 Subject: [PATCH 07/62] start building out transaction section, numbered headings --- _src/_assets/styles/_page-getstarted.scss | 55 +++++++++++++++++++++++ _src/start.html | 53 ++++++++++++++++------ 2 files changed, 95 insertions(+), 13 deletions(-) diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss index 9200410..8027d28 100644 --- a/_src/_assets/styles/_page-getstarted.scss +++ b/_src/_assets/styles/_page-getstarted.scss @@ -4,6 +4,61 @@ // bigchaindb.com // +.waiting { + pre { + min-height: 254px; + display: flex; + align-items: center; + justify-content: center; + font-style: italic; + border: 1px solid $gray-dark; + background: none; + } +} + +.response { + pre { + + } +} + +.section-title--numbered { + span { + text-align: center; + display: block; + margin: auto; + margin-bottom: $spacer / 2; + width: 3rem; + height: 3rem; + border-radius: 50%; + font-size: $font-size-lg; + background: red; + vertical-align: .4rem; + background: $headings-color; + color: $gray; + font-weight: 400; + line-height: 3rem; + } + + .text-left & { + span { + display: inline-block; + margin: 0; + } + } + + .background--light & { + span { + background: $gray-light; + color: #fff; + } + } + + &:after { + display: none; + } +} + .driver { padding: $spacer; background: rgba($brand-main-blue-light, .15); diff --git a/_src/start.html b/_src/start.html index 4460515..f2acad6 100644 --- a/_src/start.html +++ b/_src/start.html @@ -20,10 +20,40 @@ redirect_from:
-

Request

+

Request

+
+

+ + +

+

+ A transaction can contain a digital asset along with a message. Type something to be sent along the asset. +

+ Off you go +
-

Response

+

Response

+
+
+Beep, boop, waiting for your input...
+                    
+
+ +
+
+Beep, boop, waiting for your input...
+{
+  "asset": {
+    "data": {
+      "msg": "Blockchain all the things!"
+    }
+  },
+  "id": "04c00267af82c161b4bf2ad4a47d1ddbfeb47eef1a14b8d51",
+  ...
+
+
+

Nicely done! You have just created an asset, sent it along in a signed transaction and retrieved the result of that transaction. Phew.

@@ -56,7 +86,7 @@ redirect_from:
-

Get Server

+

1 Server

@@ -78,13 +108,10 @@ redirect_from:
-

Get Drivers & Tools

+

2 Drivers & Tools

+

Get one of the drivers to connect to IPDB or your BigchainDB server instance.

-
-

BigchainDB in your language

-

Get one of the drivers to connect to IPDB or your BigchainDB server instance.

-

Officially supported drivers

@@ -152,13 +179,13 @@ redirect_from:
-
+
-

Next Up

+

3 Next Up

Dive into our documentation or learn or code.

-
+

Tutorials

@@ -176,7 +203,7 @@ redirect_from:
-

Get involved in the community

+

4 Community

There are many ways you can contribute to the BigchainDB project, some very easy and others more involved. We welcome all potential contributors, so we ask that everyone participating abide by some simple guidelines.

@@ -208,7 +235,7 @@ redirect_from:
-

Follow

+
Follow

Follow us for the latest updates

{% for link in site.social %} From f63118a97f8f2f3c3ed516dffb151e5b06f95772 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Thu, 22 Jun 2017 17:03:05 +0200 Subject: [PATCH 08/62] add architecture graphic --- _src/_assets/images/architecture.svg | 71 +++++++++++++++++++++ _src/_assets/javascripts/page-getstarted.js | 45 +++++++++++++ _src/start.html | 16 ++--- 3 files changed, 124 insertions(+), 8 deletions(-) create mode 100644 _src/_assets/images/architecture.svg diff --git a/_src/_assets/images/architecture.svg b/_src/_assets/images/architecture.svg new file mode 100644 index 0000000..7a1b772 --- /dev/null +++ b/_src/_assets/images/architecture.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + D r i + + + v + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/_src/_assets/javascripts/page-getstarted.js b/_src/_assets/javascripts/page-getstarted.js index add23db..a3942fd 100644 --- a/_src/_assets/javascripts/page-getstarted.js +++ b/_src/_assets/javascripts/page-getstarted.js @@ -8,3 +8,48 @@ jQuery(function($) { // Newsletter.init() }) + +window.addEventListener('load', function load(event){ + window.removeEventListener('load', load, false) + + const driver = window.BigchainDB + const API_PATH = 'https://test.ipdb.io/api/v1/' + const APP_ID = 'b563bf22' + const APP_KEY = 'fd639614dcf8ee90a8c51a013ac11fb0' + + const postButton = document.getElementById('post') + + postButton.addEventListener('click', function(e) { + e.preventDefault() + + const alice = new driver.Ed25519Keypair() + + const message = document.getElementById('message').value + const metadata = document.getElementById('metadata').value + + const tx = driver.Transaction.makeCreateTransaction( + { assetMessage: message }, + { metaDataMessage: metadata }, + [ driver.Transaction.makeOutput( + driver.Transaction.makeEd25519Condition(alice.publicKey)) + ], + alice.publicKey + ) + const txSigned = driver.Transaction.signTransaction(tx, alice.privateKey) + + const conn = new driver.Connection(API_PATH, { + app_id: APP_ID, + app_key: APP_KEY + }) + + conn.postTransaction(txSigned) + .then(() => { + const output = document.getElementById('output') + const outputContent = conn.getStatus(txSigned.id) + + output.textContent = outputContent + }) + .then((res) => console.log('Transaction status:', res.status)) + + }, false) +}, false) diff --git a/_src/start.html b/_src/start.html index f2acad6..23b1157 100644 --- a/_src/start.html +++ b/_src/start.html @@ -29,7 +29,7 @@ redirect_from:

A transaction can contain a digital asset along with a message. Type something to be sent along the asset.

- Off you go + Off you go
@@ -57,17 +57,17 @@ redirect_from:
+
+
+

Simple, eh?

+
+
-
-
-

Architecture overview

-
-
-
+
- + BigchainDB Overview
From d3e511a33fa26262f2ba7a122278098b093ab890 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Thu, 22 Jun 2017 17:23:48 +0200 Subject: [PATCH 09/62] prepare transaction js --- _src/_assets/javascripts/page-getstarted.js | 12 ++++++------ _src/start.html | 6 +++--- package.json | 1 + 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/_src/_assets/javascripts/page-getstarted.js b/_src/_assets/javascripts/page-getstarted.js index a3942fd..de3447c 100644 --- a/_src/_assets/javascripts/page-getstarted.js +++ b/_src/_assets/javascripts/page-getstarted.js @@ -9,27 +9,27 @@ jQuery(function($) { Newsletter.init() }) -window.addEventListener('load', function load(event){ - window.removeEventListener('load', load, false) +//=include bigchaindb-driver/dist/browser/bundle.window.min.js + +window.addEventListener('DOMContentLoaded', function domload(event){ + window.removeEventListener('DOMContentLoaded', domload, false) const driver = window.BigchainDB const API_PATH = 'https://test.ipdb.io/api/v1/' const APP_ID = 'b563bf22' const APP_KEY = 'fd639614dcf8ee90a8c51a013ac11fb0' + const form = document.getElementById('form-transaction') const postButton = document.getElementById('post') postButton.addEventListener('click', function(e) { e.preventDefault() - const alice = new driver.Ed25519Keypair() - const message = document.getElementById('message').value - const metadata = document.getElementById('metadata').value + const alice = new driver.Ed25519Keypair() const tx = driver.Transaction.makeCreateTransaction( { assetMessage: message }, - { metaDataMessage: metadata }, [ driver.Transaction.makeOutput( driver.Transaction.makeEd25519Condition(alice.publicKey)) ], diff --git a/_src/start.html b/_src/start.html index 23b1157..e433679 100644 --- a/_src/start.html +++ b/_src/start.html @@ -21,10 +21,10 @@ redirect_from:

Request

-
+

- - + +

A transaction can contain a digital asset along with a message. Type something to be sent along the asset. diff --git a/package.json b/package.json index 09a2d28..f6ee557 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "ie >= 10" ], "dependencies": { + "bigchaindb-driver": "^0.1.1", "is-in-viewport": "^3.0.0", "jquery": "^3.2.1", "normalize-css": "^2.3.1", From 5b0af66ecd4005d043b2a6975b2002918b85105e Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Thu, 22 Jun 2017 17:39:36 +0200 Subject: [PATCH 10/62] that's required --- _src/_assets/javascripts/page-getstarted.js | 1 + 1 file changed, 1 insertion(+) diff --git a/_src/_assets/javascripts/page-getstarted.js b/_src/_assets/javascripts/page-getstarted.js index de3447c..8eabb5f 100644 --- a/_src/_assets/javascripts/page-getstarted.js +++ b/_src/_assets/javascripts/page-getstarted.js @@ -30,6 +30,7 @@ window.addEventListener('DOMContentLoaded', function domload(event){ const alice = new driver.Ed25519Keypair() const tx = driver.Transaction.makeCreateTransaction( { assetMessage: message }, + { metaDataMessage: 'hello' }, [ driver.Transaction.makeOutput( driver.Transaction.makeEd25519Condition(alice.publicKey)) ], From 6133c9ac4b65daa196554762c73610c4b5e60880 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Thu, 22 Jun 2017 18:12:56 +0200 Subject: [PATCH 11/62] output responses on screen --- _src/_assets/javascripts/page-getstarted.js | 17 +++++++++++++++-- _src/_assets/styles/_page-getstarted.scss | 8 +++++++- _src/start.html | 3 +-- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/_src/_assets/javascripts/page-getstarted.js b/_src/_assets/javascripts/page-getstarted.js index 8eabb5f..4619b04 100644 --- a/_src/_assets/javascripts/page-getstarted.js +++ b/_src/_assets/javascripts/page-getstarted.js @@ -43,11 +43,24 @@ window.addEventListener('DOMContentLoaded', function domload(event){ app_key: APP_KEY }) + const waiting = document.getElementsByClassName('waiting')[0] + const response = document.getElementsByClassName('response')[0] + const output = document.getElementsByClassName('output')[0] + conn.postTransaction(txSigned) .then(() => { - const output = document.getElementById('output') - const outputContent = conn.getStatus(txSigned.id) + waiting.classList.add('hide') + response.classList.remove('hide') + const outputContent = conn.getStatus(txSigned.id) + output.textContent = outputContent + }, reason => { // Error! + console.log(reason) + + waiting.classList.add('hide') + response.classList.remove('hide') + + const outputContent = reason.status + ' ' + reason.statusText output.textContent = outputContent }) .then((res) => console.log('Transaction status:', res.status)) diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss index 8027d28..6e2eb1a 100644 --- a/_src/_assets/styles/_page-getstarted.scss +++ b/_src/_assets/styles/_page-getstarted.scss @@ -18,10 +18,16 @@ .response { pre { - + border: 1px solid $gray-dark; + background: none; } } +.form--transaction { + padding-left: $spacer * 1.5; + padding-right: $spacer * 1.5; +} + .section-title--numbered { span { text-align: center; diff --git a/_src/start.html b/_src/start.html index e433679..63f4b93 100644 --- a/_src/start.html +++ b/_src/start.html @@ -42,8 +42,7 @@ redirect_from:

-Beep, boop, waiting for your input...
-{
+{
   "asset": {
     "data": {
       "msg": "Blockchain all the things!"

From b1c86a0cf845e355f0b6a3fbbc57b3934f1b1b9e Mon Sep 17 00:00:00 2001
From: Matthias Kretschmann 
Date: Thu, 22 Jun 2017 18:23:47 +0200
Subject: [PATCH 12/62] handle messages

---
 _src/_assets/javascripts/page-getstarted.js | 3 +++
 _src/_assets/styles/_page-getstarted.scss   | 1 +
 _src/start.html                             | 6 ++++--
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/_src/_assets/javascripts/page-getstarted.js b/_src/_assets/javascripts/page-getstarted.js
index 4619b04..d23f797 100644
--- a/_src/_assets/javascripts/page-getstarted.js
+++ b/_src/_assets/javascripts/page-getstarted.js
@@ -46,6 +46,8 @@ window.addEventListener('DOMContentLoaded', function domload(event){
         const waiting = document.getElementsByClassName('waiting')[0]
         const response = document.getElementsByClassName('response')[0]
         const output = document.getElementsByClassName('output')[0]
+        const messageSuccess = document.getElementsByClassName('message--success')[0]
+        const messageFail = document.getElementsByClassName('message--fail')[0]
 
         conn.postTransaction(txSigned)
             .then(() => {
@@ -59,6 +61,7 @@ window.addEventListener('DOMContentLoaded', function domload(event){
 
                 waiting.classList.add('hide')
                 response.classList.remove('hide')
+                messageFail.classList.remove('hide')
 
                 const outputContent = reason.status + ' ' +  reason.statusText
                 output.textContent = outputContent
diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss
index 6e2eb1a..8a1c52a 100644
--- a/_src/_assets/styles/_page-getstarted.scss
+++ b/_src/_assets/styles/_page-getstarted.scss
@@ -18,6 +18,7 @@
 
 .response {
     pre {
+        min-height: 254px;
         border: 1px solid $gray-dark;
         background: none;
     }
diff --git a/_src/start.html b/_src/start.html
index 63f4b93..503f8a5 100644
--- a/_src/start.html
+++ b/_src/start.html
@@ -26,7 +26,7 @@ redirect_from:
                         
                         
                     

-

+

A transaction can contain a digital asset along with a message. Type something to be sent along the asset.

Off you go @@ -52,7 +52,9 @@ redirect_from: ...
-

Nicely done! You have just created an asset, sent it along in a signed transaction and retrieved the result of that transaction. Phew.

+ +

Nicely done! You have just created an asset, sent it along in a signed transaction and retrieved the result of that transaction. Phew.

+

Shenanigans! Something's off. Would you mind trying again?

From a8f9f6c913b29aaff8384cc0025d216c26447791 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Fri, 23 Jun 2017 12:47:58 +0200 Subject: [PATCH 13/62] IT IS ALIVE --- _src/_assets/javascripts/page-getstarted.js | 32 +++++++++++++++------ 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/_src/_assets/javascripts/page-getstarted.js b/_src/_assets/javascripts/page-getstarted.js index d23f797..4476840 100644 --- a/_src/_assets/javascripts/page-getstarted.js +++ b/_src/_assets/javascripts/page-getstarted.js @@ -9,7 +9,7 @@ jQuery(function($) { Newsletter.init() }) -//=include bigchaindb-driver/dist/browser/bundle.window.min.js +//=include bigchaindb-driver/dist/browser/bigchaindb-driver.window.min.js window.addEventListener('DOMContentLoaded', function domload(event){ window.removeEventListener('DOMContentLoaded', domload, false) @@ -21,16 +21,28 @@ window.addEventListener('DOMContentLoaded', function domload(event){ const form = document.getElementById('form-transaction') const postButton = document.getElementById('post') + const messageInput = document.getElementById('message') + + // quick form validation + postButton.classList.add('disabled') + + messageInput.addEventListener('input', function() { + if (messageInput.value === '') { + postButton.classList.add('disabled') + } else { + postButton.classList.remove('disabled') + } + }) postButton.addEventListener('click', function(e) { e.preventDefault() - const message = document.getElementById('message').value + const message = messageInput.value const alice = new driver.Ed25519Keypair() const tx = driver.Transaction.makeCreateTransaction( { assetMessage: message }, - { metaDataMessage: 'hello' }, + { metaDataMessage: message }, [ driver.Transaction.makeOutput( driver.Transaction.makeEd25519Condition(alice.publicKey)) ], @@ -44,23 +56,27 @@ window.addEventListener('DOMContentLoaded', function domload(event){ }) const waiting = document.getElementsByClassName('waiting')[0] - const response = document.getElementsByClassName('response')[0] + const responseArea = document.getElementsByClassName('response')[0] const output = document.getElementsByClassName('output')[0] const messageSuccess = document.getElementsByClassName('message--success')[0] const messageFail = document.getElementsByClassName('message--fail')[0] conn.postTransaction(txSigned) - .then(() => { + .then((response) => { waiting.classList.add('hide') - response.classList.remove('hide') + responseArea.classList.remove('hide') + messageSuccess.classList.remove('hide') - const outputContent = conn.getStatus(txSigned.id) + console.log(response) + + const outputContent = JSON.stringify(response, null, 4) // indented with 4 spaces output.textContent = outputContent + }, reason => { // Error! console.log(reason) waiting.classList.add('hide') - response.classList.remove('hide') + responseArea.classList.remove('hide') messageFail.classList.remove('hide') const outputContent = reason.status + ' ' + reason.statusText From ebe033643723e2c8510ca87f6c89195c5d65a7c9 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Fri, 23 Jun 2017 13:11:19 +0200 Subject: [PATCH 14/62] add transaction link, disable post button by default --- _src/_assets/javascripts/page-getstarted.js | 9 +++++---- _src/start.html | 9 +++++++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/_src/_assets/javascripts/page-getstarted.js b/_src/_assets/javascripts/page-getstarted.js index 4476840..5de8891 100644 --- a/_src/_assets/javascripts/page-getstarted.js +++ b/_src/_assets/javascripts/page-getstarted.js @@ -24,13 +24,11 @@ window.addEventListener('DOMContentLoaded', function domload(event){ const messageInput = document.getElementById('message') // quick form validation - postButton.classList.add('disabled') - messageInput.addEventListener('input', function() { if (messageInput.value === '') { - postButton.classList.add('disabled') + postButton.setAttribute('disabled', '') } else { - postButton.classList.remove('disabled') + postButton.removeAttribute('disabled') } }) @@ -60,6 +58,7 @@ window.addEventListener('DOMContentLoaded', function domload(event){ const output = document.getElementsByClassName('output')[0] const messageSuccess = document.getElementsByClassName('message--success')[0] const messageFail = document.getElementsByClassName('message--fail')[0] + const transactionLink = document.getElementsByClassName('transaction-link')[0] conn.postTransaction(txSigned) .then((response) => { @@ -72,6 +71,8 @@ window.addEventListener('DOMContentLoaded', function domload(event){ const outputContent = JSON.stringify(response, null, 4) // indented with 4 spaces output.textContent = outputContent + transactionLink.href = 'https://test.ipdb.io/api/v1/transactions/' + response.id + }, reason => { // Error! console.log(reason) diff --git a/_src/start.html b/_src/start.html index 503f8a5..b6824f8 100644 --- a/_src/start.html +++ b/_src/start.html @@ -29,7 +29,7 @@ redirect_from:

A transaction can contain a digital asset along with a message. Type something to be sent along the asset.

- Off you go +
@@ -53,7 +53,12 @@ redirect_from:
-

Nicely done! You have just created an asset, sent it along in a signed transaction and retrieved the result of that transaction. Phew.

+
+

+ Nicely done! You have just created an asset, sent it along in a signed transaction and retrieved the result of that transaction. Phew. +

+

Check out your transaction on IPDB

+

Shenanigans! Something's off. Would you mind trying again?

From dbe88db64d11abaabf4b80cdb3cadcf6bf35b9fe Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Sat, 24 Jun 2017 13:33:46 +0200 Subject: [PATCH 15/62] quick front page reorganisation * move sections around * add CTA to intro * remove redundant Features CTA section * give Blog section title/description * IPDB banner on every page of the site * decouple content & code in intro section --- _src/_assets/styles/_page-front.scss | 13 +++--- _src/_includes/footer.html | 2 + _src/_includes/sections/section-blog.html | 5 +++ _src/index.html | 52 +++++++++++------------ 4 files changed, 41 insertions(+), 31 deletions(-) diff --git a/_src/_assets/styles/_page-front.scss b/_src/_assets/styles/_page-front.scss index d8c236a..9236898 100644 --- a/_src/_assets/styles/_page-front.scss +++ b/_src/_assets/styles/_page-front.scss @@ -5,7 +5,8 @@ // .page-front { - .section--partners { + .section--partners, + .section-testimonials { @extend .background--darker; } } @@ -14,6 +15,11 @@ .section-header { margin-bottom: $spacer * 2; } + + p:last-child { + margin-top: $spacer * 4; + margin-bottom: 0; + } } .section-intro__main { @@ -37,9 +43,6 @@ margin: auto; margin-bottom: $spacer; } -} -.section-quickstart__title { - @extend .h3; - margin-top: 0; + } diff --git a/_src/_includes/footer.html b/_src/_includes/footer.html index 765021d..ff5317b 100644 --- a/_src/_includes/footer.html +++ b/_src/_includes/footer.html @@ -1,3 +1,5 @@ +{% include ipdb.html %} +
diff --git a/_src/_includes/sections/section-blog.html b/_src/_includes/sections/section-blog.html index 0a327a9..7b85c5f 100644 --- a/_src/_includes/sections/section-blog.html +++ b/_src/_includes/sections/section-blog.html @@ -1,6 +1,11 @@
+
+

The BigchainDB Blog

+

Updates, stories and ideas from the people behind BigchainDB.

+
+
{% for article in site.articles | limit: 6 %}
diff --git a/_src/index.html b/_src/index.html index 478a863..f7e6571 100644 --- a/_src/index.html +++ b/_src/index.html @@ -10,6 +10,20 @@ js: page-front.min.js redirect_from: - /partners/ + + +intro: + title: "This is BigchainDB" + description: "With high throughput, sub-second latency and powerful functionality to automate business processes, BigchainDB looks, acts and feels like a database with added blockchain characteristics." + keyfeatures: + - title: "Decentralization" + icon: "icon-nodes" + - title: "Immutability" + icon: "icon-castle" + - title: "Native Assets" + icon: "icon-diamond" + text: "BigchainDB allows developers and enterprise to deploy blockchain proof-of-concepts, platforms and applications with a scalable blockchain database, supporting a wide range of industries and use cases." + button: "All Features" --- {% include hero.html %} @@ -17,48 +31,34 @@ redirect_from:
-

This is BigchainDB

-

- With high throughput, sub-second latency and powerful functionality to automate business processes, BigchainDB looks, acts and feels like a database with added blockchain characteristics. -

+

{{ page.intro.title }}

+

{{ page.intro.description }}

+ {% for feature in page.intro.keyfeatures %}
- + -

Decentralization

-
-
- - - -

Immutability

-
-
- - - -

Native Assets

+

{{ feature.title }}

+ {% endfor %}
-

- BigchainDB allows developers and enterprise to deploy blockchain proof-of-concepts, platforms and applications with a scalable blockchain database, supporting a wide range of industries and use cases. +

{{ page.intro.text }}

+ +

+ {{ page.intro.button }}

-{% include sections/section-partners.html %} +{% include sections/section-testimonials.html %} {% include sections/section-cta-enterprise.html %} -{% include sections/section-testimonials.html %} - -{% include sections/section-cta-features.html %} +{% include sections/section-partners.html %} {% include sections/section-blog.html %} - -{% include ipdb.html %} From 5658db675329deb01faa90eb00536de60aa210b2 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Sat, 24 Jun 2017 13:45:55 +0200 Subject: [PATCH 16/62] add first batch of driver language logos, community tweaks --- _src/_assets/images/logo-cli.svg | 6 ++++ _src/_assets/images/logo-go.svg | 6 ++++ _src/_assets/images/logo-haskell.svg | 8 ++++++ _src/_assets/images/logo-js.svg | 3 ++ _src/_assets/images/logo-python.svg | 6 ++++ _src/_assets/images/logo-ruby.svg | 12 ++++++++ _src/_assets/styles/_page-getstarted.scss | 34 ++++++++++++++++++++--- _src/_assets/styles/bigchain/_icons.scss | 6 ++++ _src/_data/drivers.yml | 6 ++++ _src/start.html | 10 +++++-- 10 files changed, 91 insertions(+), 6 deletions(-) create mode 100644 _src/_assets/images/logo-cli.svg create mode 100644 _src/_assets/images/logo-go.svg create mode 100644 _src/_assets/images/logo-haskell.svg create mode 100644 _src/_assets/images/logo-js.svg create mode 100644 _src/_assets/images/logo-python.svg create mode 100644 _src/_assets/images/logo-ruby.svg diff --git a/_src/_assets/images/logo-cli.svg b/_src/_assets/images/logo-cli.svg new file mode 100644 index 0000000..5331c41 --- /dev/null +++ b/_src/_assets/images/logo-cli.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/_src/_assets/images/logo-go.svg b/_src/_assets/images/logo-go.svg new file mode 100644 index 0000000..c34b739 --- /dev/null +++ b/_src/_assets/images/logo-go.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/_src/_assets/images/logo-haskell.svg b/_src/_assets/images/logo-haskell.svg new file mode 100644 index 0000000..3c18a8d --- /dev/null +++ b/_src/_assets/images/logo-haskell.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/_src/_assets/images/logo-js.svg b/_src/_assets/images/logo-js.svg new file mode 100644 index 0000000..d89dbbe --- /dev/null +++ b/_src/_assets/images/logo-js.svg @@ -0,0 +1,3 @@ + + + diff --git a/_src/_assets/images/logo-python.svg b/_src/_assets/images/logo-python.svg new file mode 100644 index 0000000..28f7c5c --- /dev/null +++ b/_src/_assets/images/logo-python.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/_src/_assets/images/logo-ruby.svg b/_src/_assets/images/logo-ruby.svg new file mode 100644 index 0000000..3901685 --- /dev/null +++ b/_src/_assets/images/logo-ruby.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss index 8a1c52a..752ef9a 100644 --- a/_src/_assets/styles/_page-getstarted.scss +++ b/_src/_assets/styles/_page-getstarted.scss @@ -69,8 +69,7 @@ .driver { padding: $spacer; background: rgba($brand-main-blue-light, .15); - border-top-left-radius: $border-radius; - border-top-right-radius: $border-radius; + border-radius: $border-radius; display: flex; flex-wrap: wrap; justify-content: space-between; @@ -78,14 +77,24 @@ &:hover, &:focus { + background: $brand-primary; + box-shadow: 0 1px 4px rgba($brand-main-blue-dark, .4); + transform: translateY(-1px); + .driver__title { color: #fff; } .driver__logo { - background: #fff; + fill: #fff; } } + + &:active { + outline: 0; + transform: translateY(0); + box-shadow: 0 1px 2px rgba($brand-main-blue-dark, .3); + } } .driver, @@ -97,7 +106,7 @@ .driver__logo { width: 2rem; height: 2rem; - background: $brand-primary; + fill: $brand-primary; } .driver__title { @@ -205,4 +214,21 @@ border-bottom: 1px solid $gray-dark; margin-bottom: $spacer * 3; padding-bottom: $spacer * 3; + + h5 { + margin-top: $spacer / 2; + margin-bottom: $spacer / 4; + } + + .icon { + width: 2rem; + height: 2rem; + fill: $brand-main-blue-dark; + opacity: .6; + } + + .icon--gitter { + stroke: $brand-main-blue-dark; + stroke-width: 2; + } } diff --git a/_src/_assets/styles/bigchain/_icons.scss b/_src/_assets/styles/bigchain/_icons.scss index 00f7880..e9d3cc3 100644 --- a/_src/_assets/styles/bigchain/_icons.scss +++ b/_src/_assets/styles/bigchain/_icons.scss @@ -27,3 +27,9 @@ width: .5rem; height: .5rem; } + +.icon--gitter { + stroke-width: 1.5; + fill: none; + stroke: $text-color; +} diff --git a/_src/_data/drivers.yml b/_src/_data/drivers.yml index ae9a812..86b2cc7 100644 --- a/_src/_data/drivers.yml +++ b/_src/_data/drivers.yml @@ -2,24 +2,30 @@ official: - title: Python repo: bigchaindb-driver version: v0.2.2 + icon: logo-python - title: JavaScript repo: js-bigchaindb-driver version: v0.1.1 + icon: logo-js - title: CLI repo: bdb-transaction-cli version: v0.2.2 + icon: logo-cli community: - title: Haskell repo: bigchaindb-hs + icon: logo-haskell - title: Ruby repo: bigchaindb_ruby + icon: logo-ruby - title: Go repo: bigchaindb-driver-golang + icon: logo-go - title: Java repo: bigchaindb-java diff --git a/_src/start.html b/_src/start.html index b6824f8..157ed48 100644 --- a/_src/start.html +++ b/_src/start.html @@ -127,7 +127,7 @@ redirect_from:

{{ driver.title }}

@@ -169,7 +169,7 @@ redirect_from:

{{ driver.title }}

@@ -217,6 +217,9 @@ redirect_from:
+
Open an issue

So you found a bug? Report it!

From 33c065fd6a61a94797aecda15d85b5f9af7cdc61 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Mon, 26 Jun 2017 11:53:39 +0200 Subject: [PATCH 17/62] new architecture graphic --- _src/_assets/images/architecture.svg | 124 +++++++++++----------- _src/_assets/styles/_page-getstarted.scss | 16 ++- 2 files changed, 72 insertions(+), 68 deletions(-) diff --git a/_src/_assets/images/architecture.svg b/_src/_assets/images/architecture.svg index 7a1b772..2fe4505 100644 --- a/_src/_assets/images/architecture.svg +++ b/_src/_assets/images/architecture.svg @@ -1,71 +1,67 @@ - + - - - - + + + - - - - - - - - + + + + + + + - - - - D r i - - - v - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss index 752ef9a..dd56248 100644 --- a/_src/_assets/styles/_page-getstarted.scss +++ b/_src/_assets/styles/_page-getstarted.scss @@ -39,7 +39,6 @@ height: 3rem; border-radius: 50%; font-size: $font-size-lg; - background: red; vertical-align: .4rem; background: $headings-color; color: $gray; @@ -66,6 +65,15 @@ } } +// +// Section: architecture +// +.section--architecture { + .architecture { + text-align: center; + } +} + .driver { padding: $spacer; background: rgba($brand-main-blue-light, .15); @@ -174,10 +182,10 @@ fill: lighten($brand-primary, 10%); filter: drop-shadow(0 1px 4px rgba($brand-main-blue-dark, .4)); transform: translateY(-1px); + } - &.icon--gitter { - stroke: lighten($brand-primary, 10%); - } + .icon--gitter { + stroke: lighten($brand-primary, 10%); } } From 612bb858ee14850cbf0199d8969dccbb8633d949 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Mon, 26 Jun 2017 19:03:29 +0200 Subject: [PATCH 18/62] we have a star base, I repeat, we have a star base --- _src/_assets/images/architecture.svg | 60 +- _src/_assets/images/starbase.svg | 543 ++++++++++++++++++ _src/_assets/styles/_page-getstarted.scss | 80 ++- _src/_assets/styles/bigchain/_typography.scss | 9 + _src/start.html | 58 +- 5 files changed, 695 insertions(+), 55 deletions(-) create mode 100644 _src/_assets/images/starbase.svg diff --git a/_src/_assets/images/architecture.svg b/_src/_assets/images/architecture.svg index 2fe4505..ef37d90 100644 --- a/_src/_assets/images/architecture.svg +++ b/_src/_assets/images/architecture.svg @@ -4,8 +4,8 @@ - - + + @@ -13,55 +13,57 @@ - - - + + + - - + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - + - - - - - - + + + + + + + + + - diff --git a/_src/_assets/images/starbase.svg b/_src/_assets/images/starbase.svg new file mode 100644 index 0000000..6a3e5d0 --- /dev/null +++ b/_src/_assets/images/starbase.svg @@ -0,0 +1,543 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss index dd56248..6473710 100644 --- a/_src/_assets/styles/_page-getstarted.scss +++ b/_src/_assets/styles/_page-getstarted.scss @@ -66,11 +66,83 @@ } // -// Section: architecture +// Section: server // -.section--architecture { - .architecture { - text-align: center; +.section--server { + padding-bottom: 0; +} + +.starbase { + position: relative; + margin-top: -($spacer * 2); + + // horizon layer + &:before { + content: ''; + position: absolute; + display: block; + left: 0; + right: 0; + bottom: 0; + top: 0; + background: #445261; + clip-path: polygon(0 25%, 100% 0, 100% 100%, 0% 100%); + } + + .row { + position: relative; + } +} + +.starbase__image { + display: block; + + img { + position: relative; + z-index: 1; + margin-bottom: -1.8%; + } + + // surface layer + &:before { + content: ''; + position: absolute; + display: block; + left: -5%; + right: -5%; + bottom: 0; + background: #5d6f82; + height: 24%; + width: calc(100vw + 10%); + } +} + +.serverchoice { + background: #536476; + padding-top: $spacer * 4; + padding-bottom: $spacer * 4; +} + +.serverchoice__title { + font-size: $font-size-h3; + margin-top: 0; + + // the bottom line + &:after { + content: ''; + height: 2px; + width: 3rem; + display: block; + margin: ($spacer * 2) 0 0; + background: $gray-light; + } +} + +.architecture { + text-align: center; + + img { + max-width: 45rem; } } diff --git a/_src/_assets/styles/bigchain/_typography.scss b/_src/_assets/styles/bigchain/_typography.scss index c44cfb7..0355e5a 100644 --- a/_src/_assets/styles/bigchain/_typography.scss +++ b/_src/_assets/styles/bigchain/_typography.scss @@ -199,6 +199,15 @@ em, @include text-lead; } +.pretitle { + @extend .h6; + display: block; + margin: 0; + margin-bottom: $spacer; + color: $text-color; + opacity: .6; +} + // // Lists // diff --git a/_src/start.html b/_src/start.html index 157ed48..f7c02ea 100644 --- a/_src/start.html +++ b/_src/start.html @@ -70,14 +70,6 @@ redirect_from:
-
-
-
- BigchainDB Overview -
-
-
- -
+
+
+
+ BigchainDB Overview +
+
+
+ +

1 Server

-
-
- -
-

BigchainDB Server

-

If you want to run your own BigchainDB instance you can either install on Linux or with Docker on any system.

- Install BigchainDB Server + + + +
+
+
+
+ Managed +

IPDB: the public BigchainDB network

+

No need for any installation. Sign up and connect instantly, we handle running a BigchainDB production node for you.

+ Get IPDB +
+
+ Self-hosted +

BigchainDB Server

+

If you want to run your own BigchainDB instance you can either install on Linux or with Docker on any system.

+ Install BigchainDB Server +
-
+
+
-
+

2 Drivers & Tools

From 0d382ed650a3d47867240f8c97fbd8c64a0f4787 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Mon, 26 Jun 2017 20:15:44 +0200 Subject: [PATCH 19/62] new drivers section --- _src/_assets/images/logo-java.svg | 7 + _src/_assets/images/logo-swift.svg | 3 + _src/_assets/images/starbase-drivers.svg | 807 +++++++++++++++++++ _src/_assets/styles/_page-getstarted.scss | 35 +- _src/_assets/styles/bigchain/_variables.scss | 2 +- _src/_data/drivers.yml | 8 +- _src/start.html | 105 ++- 7 files changed, 921 insertions(+), 46 deletions(-) create mode 100644 _src/_assets/images/logo-java.svg create mode 100644 _src/_assets/images/logo-swift.svg create mode 100644 _src/_assets/images/starbase-drivers.svg diff --git a/_src/_assets/images/logo-java.svg b/_src/_assets/images/logo-java.svg new file mode 100644 index 0000000..5a5b0bb --- /dev/null +++ b/_src/_assets/images/logo-java.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/_src/_assets/images/logo-swift.svg b/_src/_assets/images/logo-swift.svg new file mode 100644 index 0000000..2bbcb6f --- /dev/null +++ b/_src/_assets/images/logo-swift.svg @@ -0,0 +1,3 @@ + + + diff --git a/_src/_assets/images/starbase-drivers.svg b/_src/_assets/images/starbase-drivers.svg new file mode 100644 index 0000000..6178e56 --- /dev/null +++ b/_src/_assets/images/starbase-drivers.svg @@ -0,0 +1,807 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss index 6473710..9c42deb 100644 --- a/_src/_assets/styles/_page-getstarted.scss +++ b/_src/_assets/styles/_page-getstarted.scss @@ -95,12 +95,14 @@ } .starbase__image { - display: block; + display: flex; + align-items: flex-end; img { position: relative; z-index: 1; - margin-bottom: -1.8%; + margin-bottom: -1.45%; + opacity: .7; } // surface layer @@ -117,6 +119,28 @@ } } +.starbase--drivers { + margin-bottom: $spacer * 2; + + // horizon layer + &:before { + background: darken($gray, 3%); + } + + .starbase__image { + // surface layer + &:before { + background: lighten($gray, 2%); + height: 37%; + } + + img { + min-height: 15rem; + margin-bottom: -6.5%; + } + } +} + .serverchoice { background: #536476; padding-top: $spacer * 4; @@ -218,9 +242,16 @@ .driver__title { width: 100%; margin-bottom: 0; + font-size: $font-size-base; + } + + .driver__repo { + font-size: $font-size-xs; } .driver__logo { + width: 1.5rem; + height: 1.5rem; margin-bottom: $spacer / 2; } } diff --git a/_src/_assets/styles/bigchain/_variables.scss b/_src/_assets/styles/bigchain/_variables.scss index f1596e8..db3120e 100644 --- a/_src/_assets/styles/bigchain/_variables.scss +++ b/_src/_assets/styles/bigchain/_variables.scss @@ -47,7 +47,7 @@ $font-size-root-lg: 20px !default; $font-size-base: 1rem !default; $font-size-lg: 1.3rem !default; $font-size-sm: .85rem !default; -$font-size-xs: .7rem !default; +$font-size-xs: .65rem !default; $font-size-h1: 2.7rem !default; $font-size-h2: 2.3rem !default; diff --git a/_src/_data/drivers.yml b/_src/_data/drivers.yml index 86b2cc7..c874184 100644 --- a/_src/_data/drivers.yml +++ b/_src/_data/drivers.yml @@ -18,20 +18,26 @@ community: - title: Haskell repo: bigchaindb-hs icon: logo-haskell + link: https://github.com/bigchaindb/bigchaindb-hs - title: Ruby repo: bigchaindb_ruby icon: logo-ruby + link: https://github.com/LicenseRocks/bigchaindb_ruby - title: Go repo: bigchaindb-driver-golang icon: logo-go + link: https://github.com/krish7919/bigchaindb-driver-golang - title: Java - repo: bigchaindb-java + repo: bigchaindb-java-driver + link: https://github.com/mgrand/bigchaindb-java-driver + icon: logo-java - title: Swift repo: bigchaindb-swift + icon: logo-swift tools: - title: Crypto-Conditions diff --git a/_src/start.html b/_src/start.html index f7c02ea..392c831 100644 --- a/_src/start.html +++ b/_src/start.html @@ -93,6 +93,7 @@ redirect_from:

1 Server

+

Server is cool but what you really want is IPDB. Install, installation

@@ -132,56 +133,76 @@ redirect_from:

Get one of the drivers to connect to IPDB or your BigchainDB server instance.

-
-

Officially supported drivers

-
- - {% for driver in site.data.drivers.official %} - - {% endfor %} + + +
+ +
+
+ +

Official drivers

+ +
+ + {% for driver in site.data.drivers.official %} + + {% endfor %} + +
+ +
+
+ +

Official tools

+
+ + {% for driver in site.data.drivers.tools %} + + {% endfor %} + +
+ +
+
+ +
-

Officially supported tools

-
- - {% for driver in site.data.drivers.tools %} - - {% endfor %} - -
-
- -
-

Community supported drivers

-
+

Community drivers

+
{% for driver in site.data.drivers.community %}
- + From 5d21ffdf03c73ecd37b5d1c51ae540820e8eb8b8 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Mon, 26 Jun 2017 22:38:25 +0200 Subject: [PATCH 20/62] scrollspying, sticky sub menu --- _src/_assets/javascripts/page-getstarted.js | 81 ++++++++++++++------- _src/_assets/styles/_page-getstarted.scss | 42 ++++++++--- _src/_assets/styles/bigchain/_menus.scss | 2 +- _src/start.html | 4 +- package.json | 1 + 5 files changed, 90 insertions(+), 40 deletions(-) diff --git a/_src/_assets/javascripts/page-getstarted.js b/_src/_assets/javascripts/page-getstarted.js index 5de8891..f91bbf6 100644 --- a/_src/_assets/javascripts/page-getstarted.js +++ b/_src/_assets/javascripts/page-getstarted.js @@ -1,3 +1,5 @@ +//=require gumshoe/dist/js/gumshoe.js + //=include bigchain/smoothscroll.js //=include bigchain/newsletter.js @@ -7,11 +9,41 @@ jQuery(function($) { // init modules // Newsletter.init() + }) + +// +// Sticky nav +// +const menu = document.getElementsByClassName('menu--sub')[0] + +if ( window.innerWidth >= 768 ) { + const offset = menu.offsetTop + + window.addEventListener('scroll', function() { + if (offset < window.pageYOffset) { + menu.classList.add('sticky') + } else { + menu.classList.remove('sticky') + } + }, false) +} + + +// +// Scrollspy +// +gumshoe.init() + + +// +// BigchainDB transaction tool +// + //=include bigchaindb-driver/dist/browser/bigchaindb-driver.window.min.js -window.addEventListener('DOMContentLoaded', function domload(event){ +window.addEventListener('DOMContentLoaded', function domload(event) { window.removeEventListener('DOMContentLoaded', domload, false) const driver = window.BigchainDB @@ -38,14 +70,11 @@ window.addEventListener('DOMContentLoaded', function domload(event){ const message = messageInput.value const alice = new driver.Ed25519Keypair() - const tx = driver.Transaction.makeCreateTransaction( - { assetMessage: message }, - { metaDataMessage: message }, - [ driver.Transaction.makeOutput( - driver.Transaction.makeEd25519Condition(alice.publicKey)) - ], - alice.publicKey - ) + const tx = driver.Transaction.makeCreateTransaction({ + assetMessage: message + }, { + metaDataMessage: message + }, [driver.Transaction.makeOutput(driver.Transaction.makeEd25519Condition(alice.publicKey))], alice.publicKey) const txSigned = driver.Transaction.signTransaction(tx, alice.privateKey) const conn = new driver.Connection(API_PATH, { @@ -60,30 +89,28 @@ window.addEventListener('DOMContentLoaded', function domload(event){ const messageFail = document.getElementsByClassName('message--fail')[0] const transactionLink = document.getElementsByClassName('transaction-link')[0] - conn.postTransaction(txSigned) - .then((response) => { - waiting.classList.add('hide') - responseArea.classList.remove('hide') - messageSuccess.classList.remove('hide') + conn.postTransaction(txSigned).then((response) => { + waiting.classList.add('hide') + responseArea.classList.remove('hide') + messageSuccess.classList.remove('hide') - console.log(response) + console.log(response) - const outputContent = JSON.stringify(response, null, 4) // indented with 4 spaces - output.textContent = outputContent + const outputContent = JSON.stringify(response, null, 4) // indented with 4 spaces + output.textContent = outputContent - transactionLink.href = 'https://test.ipdb.io/api/v1/transactions/' + response.id + transactionLink.href = 'https://test.ipdb.io/api/v1/transactions/' + response.id - }, reason => { // Error! - console.log(reason) + }, reason => { // Error! + console.log(reason) - waiting.classList.add('hide') - responseArea.classList.remove('hide') - messageFail.classList.remove('hide') + waiting.classList.add('hide') + responseArea.classList.remove('hide') + messageFail.classList.remove('hide') - const outputContent = reason.status + ' ' + reason.statusText - output.textContent = outputContent - }) - .then((res) => console.log('Transaction status:', res.status)) + const outputContent = reason.status + ' ' + reason.statusText + output.textContent = outputContent + }).then((res) => console.log('Transaction status:', res.status)) }, false) }, false) diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss index 9c42deb..fddb6aa 100644 --- a/_src/_assets/styles/_page-getstarted.scss +++ b/_src/_assets/styles/_page-getstarted.scss @@ -33,13 +33,12 @@ span { text-align: center; display: block; - margin: auto; - margin-bottom: $spacer / 2; + margin: auto auto $spacer / 2; width: 3rem; height: 3rem; border-radius: 50%; font-size: $font-size-lg; - vertical-align: .4rem; + vertical-align: 0.4rem; background: $headings-color; color: $gray; font-weight: 400; @@ -102,7 +101,7 @@ position: relative; z-index: 1; margin-bottom: -1.45%; - opacity: .7; + opacity: 0.7; } // surface layer @@ -179,8 +178,8 @@ justify-content: space-between; box-shadow: none; - &:hover, - &:focus { + &:focus, + &:hover { background: $brand-primary; box-shadow: 0 1px 4px rgba($brand-main-blue-dark, .4); transform: translateY(-1px); @@ -232,7 +231,7 @@ } .driver__version { - opacity: .75; + opacity: 0.75; } .driver--community { @@ -256,11 +255,20 @@ } } +// +// Section: Docs +// + +// +// Section: Community +// .section--community { text-align: center; .section-header { - .section-description { margin-bottom: ($spacer * 2); } + .section-description { + margin-bottom: ($spacer * 2); + } } .grid h1 { @@ -277,8 +285,8 @@ box-shadow: none; padding: $btn-padding-y-sm $btn-padding-x-sm; - &:hover, - &:focus { + &:focus, + &:hover { background: none; .icon { @@ -343,3 +351,17 @@ stroke-width: 2; } } + +// +// Sticky sub menu +// +body { + position: relative; +} + +.sticky { + position: sticky; + top: 0; + width: 100%; + z-index: 2; +} diff --git a/_src/_assets/styles/bigchain/_menus.scss b/_src/_assets/styles/bigchain/_menus.scss index 3da5c76..d05434f 100644 --- a/_src/_assets/styles/bigchain/_menus.scss +++ b/_src/_assets/styles/bigchain/_menus.scss @@ -289,9 +289,9 @@ display: inline-block; } - .menu--sub { background: $gray-dark; + border-bottom: 1px solid $gray; .menu-overflow { text-align: center; diff --git a/_src/start.html b/_src/start.html index 392c831..6b5a38d 100644 --- a/_src/start.html +++ b/_src/start.html @@ -70,9 +70,9 @@ redirect_from:
-
From 5fe5c6ef45087c89208146440cef239ab5b02a4f Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Tue, 27 Jun 2017 01:03:50 +0200 Subject: [PATCH 23/62] naming consistency --- _src/_data/menus.yml | 2 +- _src/{start.html => getstarted.html} | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) rename _src/{start.html => getstarted.html} (99%) diff --git a/_src/_data/menus.yml b/_src/_data/menus.yml index 30aff37..82ffcb8 100644 --- a/_src/_data/menus.yml +++ b/_src/_data/menus.yml @@ -1,7 +1,7 @@ --- main: - title: Get started - url: "/start/" + url: "/getstarted/" - title: Features url: "/features/" - title: Use Cases diff --git a/_src/start.html b/_src/getstarted.html similarity index 99% rename from _src/start.html rename to _src/getstarted.html index 3cb07ad..778074b 100644 --- a/_src/start.html +++ b/_src/getstarted.html @@ -8,6 +8,7 @@ js: page-getstarted.min.js redirect_from: - /community/ + - /start/ ---
From 46da05a1ca12e819beffcff15186e12a0c646b57 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Tue, 27 Jun 2017 11:18:45 +0200 Subject: [PATCH 24/62] position: sticky fallback --- _src/_assets/styles/_page-getstarted.scss | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss index 949d779..9ac130c 100644 --- a/_src/_assets/styles/_page-getstarted.scss +++ b/_src/_assets/styles/_page-getstarted.scss @@ -365,8 +365,12 @@ body { } .sticky { - position: sticky; + position: fixed; top: 0; width: 100%; z-index: 2; + + @supports (position: sticky) { + position: sticky; + } } From b36be8e460e2e8af1094871840c92f325cc1cbc9 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Tue, 27 Jun 2017 12:10:36 +0200 Subject: [PATCH 25/62] content as data, build out docs section --- _src/_assets/images/icon-book.svg | 7 ++ _src/_assets/styles/_page-getstarted.scss | 54 +++++++++---- _src/_data/getstarted.yml | 91 +++++++++++++++++++++ _src/getstarted.html | 97 ++++++++++++----------- 4 files changed, 187 insertions(+), 62 deletions(-) create mode 100644 _src/_assets/images/icon-book.svg create mode 100644 _src/_data/getstarted.yml diff --git a/_src/_assets/images/icon-book.svg b/_src/_assets/images/icon-book.svg new file mode 100644 index 0000000..664e706 --- /dev/null +++ b/_src/_assets/images/icon-book.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss index 9ac130c..f0ca33d 100644 --- a/_src/_assets/styles/_page-getstarted.scss +++ b/_src/_assets/styles/_page-getstarted.scss @@ -176,7 +176,7 @@ .driver { padding: $spacer; - background: rgba($brand-main-blue-light, .15); + background: rgba($brand-main-blue-dark, .15); border-radius: $border-radius; display: flex; flex-wrap: wrap; @@ -263,6 +263,29 @@ // // Section: Docs // +.docs__title { + @extend .h3; + margin-top: 0; +} + +.docs__list { + padding-left: 0; + + li { + display: block; + } + + a { + color: $brand-primary; + box-shadow: none; + + &:hover, + &:focus { + box-shadow: inset 0 -2px 0 $brand-primary; + background: transparent; + } + } +} // // Section: Community @@ -276,11 +299,6 @@ } } - .grid h1 { - @extend .h3; - margin-top: 0; - } - .social-link { &, .icon { @@ -289,6 +307,7 @@ display: inline-block; box-shadow: none; padding: $btn-padding-y-sm $btn-padding-x-sm; + margin-top: $spacer; &:focus, &:hover { @@ -332,29 +351,34 @@ display: block; text-align: center; } + + h5 { + margin-top: 0; + } } .community__actions { border-bottom: 1px solid $gray-dark; margin-bottom: $spacer * 3; - padding-bottom: $spacer * 3; - - h5 { - margin-top: $spacer / 2; - margin-bottom: $spacer / 4; - } + padding-bottom: $spacer * 2; .icon { width: 2rem; height: 2rem; - fill: $brand-main-blue-dark; - opacity: .6; + fill: $brand-main-blue-light; + opacity: .4; + margin-bottom: $spacer / 2; } .icon--gitter { - stroke: $brand-main-blue-dark; + stroke: $brand-main-blue-light; stroke-width: 2; } + + p { + color: $brand-main-blue-light; + opacity: .8; + } } // diff --git a/_src/_data/getstarted.yml b/_src/_data/getstarted.yml new file mode 100644 index 0000000..90aeb00 --- /dev/null +++ b/_src/_data/getstarted.yml @@ -0,0 +1,91 @@ + +# ---------------------------- +# Section: First transaction +# ---------------------------- + +firsttransaction: + title: + description: + + +# ---------------------------- +# Section: Server +# ---------------------------- + +server: + title: "Server" + description: "Server is cool but what you really want is IPDB. Install, installation" + ipdb: + pretitle: "Managed" + title: "IPDB: the public BigchainDB network" + description: "No need for any installation. Sign up and connect instantly, we handle running a BigchainDB production node for you." + button: "Get IPDB" + bdb: + pretitle: "Self-hosted" + title: "BigchainDB Server" + description: "If you want to run your own BigchainDB instance you can either install on Linux or with Docker on any system." + button: "Install BigchainDB Server" + + +# ---------------------------- +# Section: Drivers +# ---------------------------- + +drivers: + title: "Drivers & tools" + description: "Get one of the drivers to connect to IPDB or your BigchainDB server instance." + title_official: "Official drivers" + title_tools: "Official tools" + title_community: "Community drivers" + + +# ---------------------------- +# Section: Docs +# ---------------------------- + +docs: + title: "Documentation" + description: "Dive into our documentation or learn or code." + categories: + + - title: "Tutorials" + items: + - title: + link: + + - title: "Code examples" + items: + - title: "Kyber" + link: "https://github.com/bigchaindb/kyber" + + - title: "Reference" + items: + - title: "HTTP API Reference" + link: "https://docs.bigchaindb.com/projects/server/en/latest/http-client-server-api.html" + - title: "Server Command Line Interface (CLI)" + link: "https://docs.bigchaindb.com/projects/server/en/latest/server-reference/bigchaindb-cli.html" + - title: "Server Configuration Settings" + link: "https://docs.bigchaindb.com/projects/server/en/latest/server-reference/configuration.html" + - title: "WebSocket Event Stream API" + link: "https://docs.bigchaindb.com/projects/server/en/latest/websocket-event-stream-api.html" + + +# ---------------------------- +# Section: Community +# ---------------------------- + +community: + title: "Community" + description: "There are many ways you can contribute to the BigchainDB project, some very easy and others more involved. We welcome all potential contributors, so we ask that everyone participating abide by some simple guidelines." + gitter: + text: "Start a chat with us on Gitter." + button: "Chat on Gitter" + github: + text: "So you found a bug? Report it!" + button: "Open an issue" + guidelines: + text: "Read up on our community guidelines." + button: "Read Guidelines" + follow: + title: "Follow" + description: "Follow us for the latest updates" diff --git a/_src/getstarted.html b/_src/getstarted.html index 778074b..b0e71a2 100644 --- a/_src/getstarted.html +++ b/_src/getstarted.html @@ -11,6 +11,8 @@ redirect_from: - /start/ --- +{% assign content = site.data.getstarted %} +
@@ -74,10 +76,10 @@ redirect_from: @@ -93,8 +95,8 @@ redirect_from:
-

1 Server

-

Server is cool but what you really want is IPDB. Install, installation

+

1 {{ content.server.title }}

+

{{ content.server.description }}

@@ -110,16 +112,16 @@ redirect_from:
- Managed -

IPDB: the public BigchainDB network

-

No need for any installation. Sign up and connect instantly, we handle running a BigchainDB production node for you.

- Get IPDB + {{ content.server.ipdb.pretitle }} +

{{ content.server.ipdb.title }}

+

{{ content.server.ipdb.description }}

+ {{ content.server.ipdb.button }}
- Self-hosted -

BigchainDB Server

-

If you want to run your own BigchainDB instance you can either install on Linux or with Docker on any system.

- Install BigchainDB Server + {{ content.server.bdb.pretitle }} +

{{ content.server.bdb.title }}

+

{{ content.server.bdb.description }}

+ {{ content.server.bdb.button }}
@@ -130,8 +132,8 @@ redirect_from:
-

2 Drivers & Tools

-

Get one of the drivers to connect to IPDB or your BigchainDB server instance.

+

2 {{ content.drivers.title }}

+

{{ content.drivers.description }}

@@ -149,7 +151,7 @@ redirect_from:
-

Official drivers

+

{{ content.drivers.title_official }}

@@ -174,7 +176,7 @@ redirect_from:
-

Official tools

+

{{ content.drivers.title_tools }}

{% for driver in site.data.drivers.tools %} @@ -197,7 +199,7 @@ redirect_from:
-

Community drivers

+

{{ content.drivers.title_community }}

{% for driver in site.data.drivers.community %} @@ -223,21 +225,26 @@ redirect_from:
-

3 Next Up

-

Dive into our documentation or learn or code.

+

3 {{ content.docs.title }}

+

{{ content.docs.description }}

-
-

Tutorials

-
-
-

Code examples

-
-
-

Documentation

-
+ + {% for category in content.docs.categories %} + +
+

{{ category.title }}

+ +
+ + {% endfor %} +
@@ -245,8 +252,8 @@ redirect_from:
-

4 Community

-

There are many ways you can contribute to the BigchainDB project, some very easy and others more involved. We welcome all potential contributors, so we ask that everyone participating abide by some simple guidelines.

+

4 {{ content.community.title }}

+

{{ content.community.description }}

@@ -256,26 +263,22 @@ redirect_from: -
Chat on Gitter
-

Start a chat with us on Gitter.

- - Chat on Gitter - +

{{ content.community.gitter.text }}

+ {{ content.community.gitter.button }}
-
Open an issue
-

So you found a bug? Report it!

- - Open issue - +

{{ content.community.github.text }}

+ {{ content.community.github.button }}
-
Guidelines
-

Read up on our community guidelines.

- Read Guidelines + +

{{ content.community.guidelines.text }}

+ {{ content.community.guidelines.button }}
@@ -283,8 +286,8 @@ redirect_from:
-
Follow
-

Follow us for the latest updates

+
{{ content.community.follow.title }}
+

{{ content.community.follow.description }}

{% for link in site.social %} diff --git a/_src/getstarted.html b/_src/getstarted.html index b0e71a2..6b04aaf 100644 --- a/_src/getstarted.html +++ b/_src/getstarted.html @@ -103,7 +103,7 @@ redirect_from: @@ -247,6 +247,11 @@ redirect_from:
+
From dab766f3c9509567aa52a10a3f21b6e051c21e24 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Tue, 27 Jun 2017 16:16:51 +0200 Subject: [PATCH 29/62] transaction tool simplification --- _src/_assets/javascripts/page-getstarted.js | 5 ++- _src/_assets/styles/_page-getstarted.scss | 30 ++++++++++++++++-- _src/getstarted.html | 35 +++++++++------------ 3 files changed, 46 insertions(+), 24 deletions(-) diff --git a/_src/_assets/javascripts/page-getstarted.js b/_src/_assets/javascripts/page-getstarted.js index f91bbf6..c6f699c 100644 --- a/_src/_assets/javascripts/page-getstarted.js +++ b/_src/_assets/javascripts/page-getstarted.js @@ -96,11 +96,14 @@ window.addEventListener('DOMContentLoaded', function domload(event) { console.log(response) - const outputContent = JSON.stringify(response, null, 4) // indented with 4 spaces + const outputContent = JSON.stringify(response, null, 2) // indented with 2 spaces output.textContent = outputContent transactionLink.href = 'https://test.ipdb.io/api/v1/transactions/' + response.id + postButton.classList.add('disabled') + postButton.style.opacity = 0 + }, reason => { // Error! console.log(reason) diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss index b6023d9..d013af0 100644 --- a/_src/_assets/styles/_page-getstarted.scss +++ b/_src/_assets/styles/_page-getstarted.scss @@ -4,12 +4,21 @@ // bigchaindb.com // +.section--firsttransaction { + .grid__col { + + } +} + .waiting { + width: 100%; + pre { - min-height: 254px; + min-height: 340px; display: flex; align-items: center; justify-content: center; + text-align: center; font-style: italic; border: 1px solid $gray-dark; background: none; @@ -18,15 +27,32 @@ .response { pre { - min-height: 254px; + min-height: 340px; border: 1px solid $gray-dark; background: none; + line-height: 1.3; + } + + code { + font-size: $font-size-xs; } } +.message { + color: #fff; +} + .form--transaction { + min-height: 340px; padding-left: $spacer * 1.5; padding-right: $spacer * 1.5; + display: flex; + align-items: center; +} + +.form--transaction__content { + border: none; + padding: 0; } .section-title--numbered { diff --git a/_src/getstarted.html b/_src/getstarted.html index 6b04aaf..46ca141 100644 --- a/_src/getstarted.html +++ b/_src/getstarted.html @@ -14,29 +14,27 @@ redirect_from: {% assign content = site.data.getstarted %}
-
-
-

Get your first transaction into BigchainDB

-

Never wrote something into a blockchain? Now’s your chance: add your message and send off your first transaction to BigchainDB running within IPDB.

-
-
+
-

Request

+

Get your first transaction into BigchainDB

-

- - -

-

- A transaction can contain a digital asset along with a message. Type something to be sent along the asset. -

- +
+

+ + +

+

+ A transaction can contain a digital asset along with a message. Type something to be sent along the asset. +

+ +
+
-

Response

+

 

 Beep, boop, waiting for your input...
@@ -66,11 +64,6 @@ redirect_from:
             
-
-
-

Simple, eh?

-
-
+
+
{% for feature in page.intro.keyfeatures %}
@@ -45,14 +49,15 @@ intro:
{% endfor %}
+
+

{{ page.intro.text }}

{{ page.intro.button }}

-
{% include sections/section-testimonials.html %} From 095e60d7c7b7ea07b0fd92cb3a1bab3a0d6744ca Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Tue, 27 Jun 2017 19:55:43 +0200 Subject: [PATCH 31/62] new drivers starbase --- _src/_assets/images/starbase-drivers.svg | 33 ++++++++++++++--------- _src/_assets/styles/_page-getstarted.scss | 14 +++++++--- _src/getstarted.html | 2 +- 3 files changed, 31 insertions(+), 18 deletions(-) diff --git a/_src/_assets/images/starbase-drivers.svg b/_src/_assets/images/starbase-drivers.svg index 6178e56..11eb813 100644 --- a/_src/_assets/images/starbase-drivers.svg +++ b/_src/_assets/images/starbase-drivers.svg @@ -1,4 +1,4 @@ - + @@ -93,7 +93,14 @@ - + + + + + + + + @@ -198,7 +205,7 @@ - + @@ -306,10 +313,10 @@ - + - + @@ -414,10 +421,10 @@ - + - + @@ -522,11 +529,11 @@ - + - + @@ -630,10 +637,10 @@ - + - + @@ -738,10 +745,10 @@ - + - + diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss index d013af0..443a489 100644 --- a/_src/_assets/styles/_page-getstarted.scss +++ b/_src/_assets/styles/_page-getstarted.scss @@ -104,6 +104,8 @@ .starbase { position: relative; margin-top: -($spacer * 2); + display: flex; + align-items: flex-end; // horizon layer &:before { @@ -144,16 +146,19 @@ } } +// Drivers starbase +// All magic numbers, gonna wing that visually .starbase--drivers { + min-height: 15rem; + .starbase__image { // surface layer &:before { - height: 37%; + height: 35%; } img { - min-height: 15rem; - margin-bottom: -6.5%; + margin-bottom: -.5%; } } } @@ -286,7 +291,7 @@ // Section: Docs // .section--docs { - + text-align: center; } .docs__actions { @@ -301,6 +306,7 @@ .docs__list { padding-left: 0; + text-align: left; li { display: block; diff --git a/_src/getstarted.html b/_src/getstarted.html index 46ca141..c29e1c3 100644 --- a/_src/getstarted.html +++ b/_src/getstarted.html @@ -133,7 +133,7 @@ redirect_from:
- Starbase + Starbase
From 43c75dd5ca9e5eea59e517233492433b24b006d6 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Tue, 27 Jun 2017 20:39:49 +0200 Subject: [PATCH 32/62] new on-page sub menu --- _src/_assets/styles/_page-getstarted.scss | 29 -------- _src/_assets/styles/_page-usecases.scss | 1 - _src/_assets/styles/bigchain/_menus.scss | 81 +++++++++++++++++++++-- _src/getstarted.html | 10 +-- 4 files changed, 79 insertions(+), 42 deletions(-) diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss index 443a489..b55895a 100644 --- a/_src/_assets/styles/_page-getstarted.scss +++ b/_src/_assets/styles/_page-getstarted.scss @@ -418,32 +418,3 @@ opacity: .8; } } - -// -// Sticky sub menu -// -body { - position: relative; -} - -.sticky { - position: fixed; - top: 0; - width: 100%; - z-index: 2; - - @supports (position: sticky) { - position: sticky; - } - - .menu__link { - @media ($screen-sm) { - padding-top: $spacer; - padding-bottom: $spacer; - - &:after { - bottom: $spacer / 2; - } - } - } -} diff --git a/_src/_assets/styles/_page-usecases.scss b/_src/_assets/styles/_page-usecases.scss index bac3ceb..fc7ffef 100644 --- a/_src/_assets/styles/_page-usecases.scss +++ b/_src/_assets/styles/_page-usecases.scss @@ -137,7 +137,6 @@ } } - // // Single use case page // diff --git a/_src/_assets/styles/bigchain/_menus.scss b/_src/_assets/styles/bigchain/_menus.scss index dc8a4c0..933a527 100644 --- a/_src/_assets/styles/bigchain/_menus.scss +++ b/_src/_assets/styles/bigchain/_menus.scss @@ -116,7 +116,6 @@ } } - // // Main menu overlaying a dark background image // in front page hero or page headers @@ -220,7 +219,6 @@ } } - .footer__copyright { border-top: 1px solid $brand-main-gray; text-align: center; @@ -256,7 +254,6 @@ } } - // // ERDF logo // @@ -289,13 +286,18 @@ display: inline-block; } +// +// On-page sub menu +// .menu--sub { @include transition; - background: rgba(lighten($gray, 30%), .85); - backdrop-filter: saturate(200%) blur(10px); + transform: translate3d(0, 0, 0); + background: lighten($gray, 30%); - a { + .menu__link { color: $gray-dark; + margin-left: $spacer; + margin-right: $spacer; &:after { background: darken($gray-dark, 10%); @@ -316,7 +318,72 @@ vertical-align: baseline; margin-right: $spacer / 6; margin-bottom: -2px; - stroke-width: 3px; + stroke-width: 4px; // that's weird color: $gray; + stroke: $gray-dark; + } + + .number { + text-align: center; + display: inline-block; + width: 1rem; + height: 1rem; + border-radius: 50%; + font-size: $font-size-xs; + vertical-align: .1rem; + background: $gray; + color: $gray-light; + font-weight: $font-weight-bold; + line-height: 1rem; + margin-right: .2rem; + margin-left: -1.2rem; + } + + &.sticky { + background: rgba(lighten($gray, 30%), .85); + backdrop-filter: saturate(200%) blur(10px); + box-shadow: 0 2px 6px rgba($gray-dark, .4); + + // fake less padding and smaller menu bar + // for performant and smoooth transition + transform: translate3d(0, -2rem, 0); + + .menu__link { + @media ($screen-sm) { + transform: scale(.85) translate3d(0, .6rem, 0); + transform-origin: bottom; + } + + &.active { + color: $headings-color; + + .number { + background: $headings-color; + color: $gray; + } + + &:after { + background: $headings-color; + } + } + } + } +} + +// +// Sticky sub menu +// +body { + position: relative; +} + +.sticky { + position: fixed; + top: 0; + width: 100%; + z-index: 2; + + @supports (position: sticky) { + position: sticky; } } diff --git a/_src/getstarted.html b/_src/getstarted.html index c29e1c3..de29155 100644 --- a/_src/getstarted.html +++ b/_src/getstarted.html @@ -69,10 +69,10 @@ redirect_from: @@ -88,7 +88,7 @@ redirect_from:
-

1 {{ content.server.title }}

+

1 {{ content.server.title }}

{{ content.server.description }}

From 51ea4f0707b88ee06492fb0844db5c1e959d3202 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Tue, 27 Jun 2017 21:51:09 +0200 Subject: [PATCH 33/62] revamped intro section, new alert styles --- _src/_assets/images/starbase-intro.svg | 438 ++++++++++++++++++ .../{starbase.svg => starbase-server.svg} | 0 _src/_assets/styles/_page-getstarted.scss | 70 ++- _src/_assets/styles/bigchain/_alerts.scss | 18 +- .../styles/bigchain/_mixins/_alerts.scss | 5 +- _src/_assets/styles/bigchain/_variables.scss | 24 +- _src/_data/getstarted.yml | 9 +- _src/getstarted.html | 33 +- _src/styleguide.md | 16 +- 9 files changed, 540 insertions(+), 73 deletions(-) create mode 100644 _src/_assets/images/starbase-intro.svg rename _src/_assets/images/{starbase.svg => starbase-server.svg} (100%) diff --git a/_src/_assets/images/starbase-intro.svg b/_src/_assets/images/starbase-intro.svg new file mode 100644 index 0000000..017278e --- /dev/null +++ b/_src/_assets/images/starbase-intro.svg @@ -0,0 +1,438 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/_src/_assets/images/starbase.svg b/_src/_assets/images/starbase-server.svg similarity index 100% rename from _src/_assets/images/starbase.svg rename to _src/_assets/images/starbase-server.svg diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss index b55895a..861b168 100644 --- a/_src/_assets/styles/_page-getstarted.scss +++ b/_src/_assets/styles/_page-getstarted.scss @@ -5,11 +5,24 @@ // .section--firsttransaction { - .grid__col { + overflow: visible; + h4 { + margin-bottom: $spacer * 2.5; } } +.form--transaction { + // mnml frm + background: none; + padding: 0; +} + +.form--transaction__content { + border: none; + padding: 0; +} + .waiting { width: 100%; @@ -39,20 +52,7 @@ } .message { - color: #fff; -} - -.form--transaction { - min-height: 340px; - padding-left: $spacer * 1.5; - padding-right: $spacer * 1.5; - display: flex; - align-items: center; -} - -.form--transaction__content { - border: none; - padding: 0; + font-size: $font-size-base; } .section-title--numbered { @@ -101,6 +101,11 @@ } } +// +// All your star bases belong to us +// +// .starbase--server is the baseline +// .starbase { position: relative; margin-top: -($spacer * 2); @@ -139,26 +144,51 @@ display: block; left: -5%; right: -5%; - bottom: 0; + bottom: auto; background: lighten($gray, 8%); height: 24%; - width: calc(100vw + 10%); + width: calc(100vw + 5%); } } // Drivers starbase -// All magic numbers, gonna wing that visually +// All magic numbers, gonna wing it visually .starbase--drivers { - min-height: 15rem; + min-height: 12rem; .starbase__image { + // surface layer + &:before { + height: 40%; + } + + img { + margin-bottom: -.5%; + } + } +} + +// Intro starbase +// All magic numbers, gonna wing it visually +.starbase--intro { + min-height: 10rem; + margin-top: -($spacer * 8); + margin-bottom: 2%; + + @media ($screen-sm) { + margin-bottom: 4%; + } + + .starbase__image { + margin-top: -($spacer * 8); + // surface layer &:before { height: 35%; } img { - margin-bottom: -.5%; + margin-bottom: -1%; } } } diff --git a/_src/_assets/styles/bigchain/_alerts.scss b/_src/_assets/styles/bigchain/_alerts.scss index d3bd0ab..7031bc6 100644 --- a/_src/_assets/styles/bigchain/_alerts.scss +++ b/_src/_assets/styles/bigchain/_alerts.scss @@ -9,7 +9,6 @@ @extend .small; padding: $alert-padding; margin-bottom: $spacer; - border: 1px solid transparent; border-radius: $border-radius; text-align: left; @@ -31,22 +30,21 @@ padding-bottom: $spacer; } - // // Alternate styles // -.alert-success { - @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text); +.alert--success { + @include alert-variant($alert-success-bg, $alert-success-text); } -.alert-info { - @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text); +.alert--info { + @include alert-variant($alert-info-bg, $alert-info-text); } -.alert-warning { - @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text); +.alert--warning { + @include alert-variant($alert-warning-bg, $alert-warning-text); } -.alert-danger { - @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text); +.alert--danger { + @include alert-variant($alert-danger-bg, $alert-danger-text); } diff --git a/_src/_assets/styles/bigchain/_mixins/_alerts.scss b/_src/_assets/styles/bigchain/_mixins/_alerts.scss index 838c851..409fac9 100644 --- a/_src/_assets/styles/bigchain/_mixins/_alerts.scss +++ b/_src/_assets/styles/bigchain/_mixins/_alerts.scss @@ -1,11 +1,8 @@ // Alerts -@mixin alert-variant($background, $border, $text-color) { +@mixin alert-variant($background, $text-color) { background-color: $background; - border-color: $border; color: $text-color; - hr { border-top-color: darken($border, 5%); } - .alert__icon { stroke: $text-color; border-bottom-color: rgba($text-color, .3); diff --git a/_src/_assets/styles/bigchain/_variables.scss b/_src/_assets/styles/bigchain/_variables.scss index db3120e..d24c0af 100644 --- a/_src/_assets/styles/bigchain/_variables.scss +++ b/_src/_assets/styles/bigchain/_variables.scss @@ -212,21 +212,17 @@ $input-color-placeholder: $gray-light !default; // // Form states and alerts // -$state-success-text: $brand-success !default; -$state-success-bg: lighten($brand-success, 40%) !default; -$state-success-border: darken(adjust-hue($state-success-bg, -10), 5%) !default; +$state-success-text: #fff !default; +$state-success-bg: rgba($brand-primary, .4) !default; -$state-info-text: $brand-info !default; -$state-info-bg: lighten($brand-info, 30%) !default; -$state-info-border: darken(adjust-hue($state-info-bg, -10), 5%) !default; +$state-info-text: #fff !default; +$state-info-bg: rgba($brand-main-violet, .4) !default; -$state-warning-text: $brand-warning !default; -$state-warning-bg: lighten($brand-warning, 40%) !default; -$state-warning-border: darken(adjust-hue($state-warning-bg, -10), 5%) !default; +$state-warning-text: #fff !default; +$state-warning-bg: rgba($brand-warning, .4) !default; -$state-danger-text: $brand-danger !default; -$state-danger-bg: lighten($brand-danger, 40%) !default; -$state-danger-border: darken(adjust-hue($state-danger-bg, -10), 5%) !default; +$state-danger-text: #fff !default; +$state-danger-bg: rgba($brand-danger, .4) !default; // @@ -237,16 +233,12 @@ $alert-border-radius: $border-radius !default; $alert-success-bg: $state-success-bg !default; $alert-success-text: $state-success-text !default; -$alert-success-border: $state-success-border !default; $alert-info-bg: $state-info-bg !default; $alert-info-text: $state-info-text !default; -$alert-info-border: $state-info-border !default; $alert-warning-bg: $state-warning-bg !default; $alert-warning-text: $state-warning-text !default; -$alert-warning-border: $state-warning-border !default; $alert-danger-bg: $state-danger-bg !default; $alert-danger-text: $state-danger-text !default; -$alert-danger-border: $state-danger-border !default; diff --git a/_src/_data/getstarted.yml b/_src/_data/getstarted.yml index 8e52e19..6e0b7e4 100644 --- a/_src/_data/getstarted.yml +++ b/_src/_data/getstarted.yml @@ -4,8 +4,13 @@ # ---------------------------- firsttransaction: - title: - description: + title: "Get your first transaction into BigchainDB" + message: + label: "Type a message" + button: "Off you go" + request: "A transaction can contain a digital asset along with a message. Type something to be sent along the asset." + response: "Nicely done! You have just created an asset, sent it along in a signed transaction and retrieved the result of that transaction. Phew." + # ---------------------------- diff --git a/_src/getstarted.html b/_src/getstarted.html index de29155..25a1c9d 100644 --- a/_src/getstarted.html +++ b/_src/getstarted.html @@ -15,26 +15,35 @@ redirect_from:
+ +
+

{{ content.firsttransaction.title }}

+
-

Get your first transaction into BigchainDB

+

{{ content.firsttransaction.message.request }}

+
+

- +

-

- A transaction can contain a digital asset along with a message. Type something to be sent along the asset. -

- + +
-

 

 Beep, boop, waiting for your input...
@@ -54,13 +63,11 @@ redirect_from:
 
-
-

- Nicely done! You have just created an asset, sent it along in a signed transaction and retrieved the result of that transaction. Phew. -

+
+

{{ content.firsttransaction.message.response }}

Check out your transaction on IPDB

-

Shenanigans! Something's off. Would you mind trying again?

+

Shenanigans! Something's off. Would you mind trying again?

@@ -96,7 +103,7 @@ redirect_from: diff --git a/_src/styleguide.md b/_src/styleguide.md index 725d002..8876f39 100644 --- a/_src/styleguide.md +++ b/_src/styleguide.md @@ -293,28 +293,28 @@ Logo can be used with a base class and modifier classes for size & color: ### Alerts -
Lucas ipsum dolor sit amet kenobi ubese yaka weequay aka trioculus
-
Lucas ipsum Lucas ipsum dolor sit amet kenobi ubese yaka weequay aka trioculus
-
Lucas ipsum Lucas ipsum dolor sit amet kenobi ubese yaka weequay aka trioculus
-
Lucas ipsum Lucas ipsum dolor sit amet kenobi ubese yaka weequay aka trioculus
+
Lucas ipsum dolor sit amet kenobi ubese yaka weequay aka trioculus
+
Lucas ipsum Lucas ipsum dolor sit amet kenobi ubese yaka weequay aka trioculus
+
Lucas ipsum Lucas ipsum dolor sit amet kenobi ubese yaka weequay aka trioculus
+
Lucas ipsum Lucas ipsum dolor sit amet kenobi ubese yaka weequay aka trioculus
```html -
+
Lucas ipsum Lucas ipsum dolor sit amet kenobi ubese yaka weequay aka trioculus
-
+
Lucas ipsum Lucas ipsum dolor sit amet kenobi ubese yaka weequay aka trioculus
-
+
Lucas ipsum Lucas ipsum dolor sit amet kenobi ubese yaka weequay aka trioculus
-
+
Lucas ipsum Lucas ipsum dolor sit amet kenobi ubese yaka weequay aka trioculus
From 2b531e601a9cc912d9eab68afc855c243d9a5129 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Tue, 27 Jun 2017 21:59:58 +0200 Subject: [PATCH 34/62] form tweaks --- _src/_assets/styles/_page-getstarted.scss | 21 +++++++++++++++++++-- _src/_assets/styles/bigchain/_forms.scss | 4 ++-- _src/_data/getstarted.yml | 2 +- _src/getstarted.html | 5 +++-- 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss index 861b168..3fcbfbe 100644 --- a/_src/_assets/styles/_page-getstarted.scss +++ b/_src/_assets/styles/_page-getstarted.scss @@ -7,8 +7,15 @@ .section--firsttransaction { overflow: visible; - h4 { - margin-bottom: $spacer * 2.5; + .section-title { + font-size: $font-size-h3; + text-align: left; + margin-top: $spacer * 3; + margin-bottom: $spacer * 3; + + &:after { + display: none; + } } } @@ -16,11 +23,21 @@ // mnml frm background: none; padding: 0; + + min-height: 340px; + display: flex; + align-items: center; + flex-wrap: wrap; + + .form-group:first-child { + margin-top: 0; + } } .form--transaction__content { border: none; padding: 0; + width: 100%; } .waiting { diff --git a/_src/_assets/styles/bigchain/_forms.scss b/_src/_assets/styles/bigchain/_forms.scss index 3f2b008..d631742 100644 --- a/_src/_assets/styles/bigchain/_forms.scss +++ b/_src/_assets/styles/bigchain/_forms.scss @@ -309,8 +309,8 @@ input[type='checkbox'] { .parsley-errors-list { @extend .list-unstyled; position: absolute; - left: 0; - bottom: 0; + right: 0; + bottom: $spacer * 1.2; font-size: $font-size-xs; &, diff --git a/_src/_data/getstarted.yml b/_src/_data/getstarted.yml index 6e0b7e4..bf18e3c 100644 --- a/_src/_data/getstarted.yml +++ b/_src/_data/getstarted.yml @@ -8,7 +8,7 @@ firsttransaction: message: label: "Type a message" button: "Off you go" - request: "A transaction can contain a digital asset along with a message. Type something to be sent along the asset." + request: "A transaction can contain a digital asset along with a message. Type something above to be sent along the asset." response: "Nicely done! You have just created an asset, sent it along in a signed transaction and retrieved the result of that transaction. Phew." diff --git a/_src/getstarted.html b/_src/getstarted.html index 25a1c9d..84faa32 100644 --- a/_src/getstarted.html +++ b/_src/getstarted.html @@ -24,11 +24,10 @@ redirect_from:
-

{{ content.firsttransaction.title }}

+

{{ content.firsttransaction.title }}

-

{{ content.firsttransaction.message.request }}

@@ -38,6 +37,8 @@ redirect_from:

+

{{ content.firsttransaction.message.request }}

+
From 0a1c32eb21399c80b47c6d335e056e7b22d0af17 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Tue, 27 Jun 2017 23:11:10 +0200 Subject: [PATCH 35/62] prototype nyan cat --- _src/_assets/javascripts/bigchain/nyan.js | 97 +++++++++++++++++++++ _src/_assets/javascripts/page-getstarted.js | 2 + _src/_assets/styles/bigchain.scss | 1 + _src/_assets/styles/bigchain/_nyan.scss | 50 +++++++++++ _src/getstarted.html | 3 +- 5 files changed, 152 insertions(+), 1 deletion(-) create mode 100644 _src/_assets/javascripts/bigchain/nyan.js create mode 100644 _src/_assets/styles/bigchain/_nyan.scss diff --git a/_src/_assets/javascripts/bigchain/nyan.js b/_src/_assets/javascripts/bigchain/nyan.js new file mode 100644 index 0000000..fa93c1f --- /dev/null +++ b/_src/_assets/javascripts/bigchain/nyan.js @@ -0,0 +1,97 @@ +// https://codepen.io/brunorcunha/pen/wikEI +// highly modified + +// var posX = 100, +// posY = 100, +// px = 0, +// py = 0, +// an = false; +var nyan = $('.nyan'); +var nyanToAppend = $('.nyan-container') +//var rainbow = null; +var altura = 800; +var largura = parseInt(nyanToAppend.width()); +var tamanhoTela = parseInt(largura / 9); +var pilha = []; + +function getRandomInt(min, max) { + return Math.floor(Math.random() * (max - min + 1)) + min; +} + +function criarEstrela() { + var rand = getRandomInt(3, 14); + var tempoDeVida = getRandomInt(5, 10); + var star = $('
').css({ + width: rand + 'px', + height: rand + 'px', + left: largura - 10 + 'px', + top: Math.floor((Math.random() * altura) + 1), + '-webkit-transition': 'all ' + tempoDeVida + 's linear', + '-webkit-transform': 'translate(0px, 0px)' + }); + nyanToAppend.append(star); + + window.setTimeout(function() { + star.css({ + '-webkit-transform': 'translate(-' + largura + 'px, 0px)' + }); + }, getRandomInt(5, 10) * 10); + + window.setTimeout(function() { + star.remove(); + }, tempoDeVida * 1000); +} + +// function moveNyan() { +// var tamX = nyan.width() / 2, +// tamY = nyan.height() / 2; +// px += (posX - px - tamX) / 50; +// py += (posY - py - tamY) / 50; +// +// nyan.css({ +// left: px + 'px', +// top: py + 'px' +// }); +// } +// function peidaArcoIris() { +// var qnt = Math.floor(nyan.position().left / 9) + 2; +// +// if (pilha.length >= qnt) +// pilha.pop(); +// +// pilha.unshift(py); +// +// rainbow.hide(); +// for (var i = 0; i < qnt; i++) { +// var am = (i % 2); +// if (an) +// am = (i % 2) +// ? 0 +// : 1; +// +// rainbow.eq(qnt - i).css({ +// top: pilha[i] + am +// }).show(); +// } +// } + +// window.setInterval(function() { +// moveNyan(); +// peidaArcoIris(); +// }, 10); + +window.setInterval(function() { + criarEstrela(); +}, 300); + +// window.setInterval(function() { +// an = !an; +// }, 500); + +// var frame = 0; +// window.setInterval(function() { +// nyan.css({ +// 'background-position': 34 *frame + 'px' +// }); +// frame++; +// }, 100); diff --git a/_src/_assets/javascripts/page-getstarted.js b/_src/_assets/javascripts/page-getstarted.js index c6f699c..1c330e8 100644 --- a/_src/_assets/javascripts/page-getstarted.js +++ b/_src/_assets/javascripts/page-getstarted.js @@ -104,6 +104,8 @@ window.addEventListener('DOMContentLoaded', function domload(event) { postButton.classList.add('disabled') postButton.style.opacity = 0 + //=include bigchain/nyan.js + }, reason => { // Error! console.log(reason) diff --git a/_src/_assets/styles/bigchain.scss b/_src/_assets/styles/bigchain.scss index 040f72a..f025bd6 100644 --- a/_src/_assets/styles/bigchain.scss +++ b/_src/_assets/styles/bigchain.scss @@ -35,6 +35,7 @@ @import 'bigchain/team'; @import 'bigchain/timeline'; @import 'bigchain/terminal'; +@import 'bigchain/nyan'; @import 'bigchain/utilities'; // Content types diff --git a/_src/_assets/styles/bigchain/_nyan.scss b/_src/_assets/styles/bigchain/_nyan.scss new file mode 100644 index 0000000..b1ec559 --- /dev/null +++ b/_src/_assets/styles/bigchain/_nyan.scss @@ -0,0 +1,50 @@ +// https://codepen.io/brunorcunha/pen/wikEI +// highly modified + +.nyan-container { + position: relative; + overflow: hidden; +} + +.nyan { + z-index: 10; + position: absolute; + width: 34px; + height: 33px; + left: 50%; + + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMwAAAAgCAYAAABepJcLAAACiUlEQVR4nO2Yi23DMAxEvVMW6Ghdwzt1p7Qp4sKhKIkUqVyUXtEHBIlsPZ9J+bN9fG4bIcQGXICQlYALELIScAFCVgIuQMhKwAUIWQnboG27RkmRpQc9wB4mievXHiYaCj3o8QoePomffzcJodCDHq/iYRepTXTZ9c+KTEog9KAH0MMm0pvI2MHhQOhBjwSP7f680vM4xo03TIdC5CzeEcn0KFwqHl4XeqxfH7ex+77/0spDjktvGFVE6dyaSPaJqbqIE+Nxocf69XHefysPOeahYQ7RA7PIqTOjIqFAxCW46aKcmLQCocf0+pA1GvU45jmj/V40jNw42rlekVAgk1wyV/aVPeTYjJV9JAtZp1kePdSG0ZpGFak8UEVF3IE0HuwyXMyF+uYecltZ5Mj68HqMOBR5yFVECnU791JeSoe71xOI4pEVSq1I0R6IPGRdIOtDa+BjzIjH7a/mJn8rGqbWNH8ijhVsRMQciOGVYaZLtXEBHsg8ZA6o+sisU20xOB9bt2G0YCz3hhki5kCe4KJtg/AIraiTzo37SjfJIeJxvaM1bNHAd6oNY74FUd48RESGA6m8EQqFUjnBSA/zQjbBY+jlwxPqI8NDZiw/mxvmQaRzucsQyfDIdJEFivCQY5B5vFt91BaiM2r2ZpHOJS8qkuUx0wXhcfyO9mjegQDrw+uhubQosjffDhmIiLhDAbjQQ7/6orI49jeah4VizpaIZTUYxdMsMz1GXJAe6DzO8yOzmOXRa1bzSdG+t2xr3c5aIJ79vaML2gE9P9qjusMz2ve9g6lt6ynQ1pwZLl6fV3BBO6Dnz9hP5BhcxUvIfwcuQMhKwAUIWQm4ACErARcgZCXgAoSsxDdoVHw2ca8RoAAAAABJRU5ErkJggg=="); + + // rainbow + &:before { + content: ''; + position: absolute; + right: 0; + top: 50%; + margin-top: -9px; + margin-right: 34px; + width: 750%; + height: 18px; + background: linear-gradient(to bottom, red 16%, orange 16%, orange 32%, yellow 32%, yellow 48%, green 48%, green 64%, blue 64%, blue 80%, violet 80%); + opacity: .4; + z-index: -1; + } + + animation: nyan .6s steps(6, end) infinite; +} + +@keyframes nyan { + to { + background-position: -204px center; + } +} + +.star { + width: 7px; + height: 7px; + position: absolute; + z-index: 1; + background-size: 100% 100%; + + background-image: url("data:image/gif;base64,R0lGODlhBwAHAIABAP///////yH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjU0NTY1ODg4RDlBODExRTI5MzZGQjVEN0ZDMUFENjhCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjU0NTY1ODg5RDlBODExRTI5MzZGQjVEN0ZDMUFENjhCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NTQ1NjU4ODZEOUE4MTFFMjkzNkZCNUQ3RkMxQUQ2OEIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NTQ1NjU4ODdEOUE4MTFFMjkzNkZCNUQ3RkMxQUQ2OEIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQJFAABACwAAAAABwAHAAACB4yPqQfrXwAAIfkEBRQAAQAsAAAAAAcABwAAAgmMj2mQzPiUNAUAIfkECRQAAQAsAQABAAUABQAAAgdMYGm4mlwAACH5BAkUAAEALAAAAAAHAAcAAAILjGEZqA0IWUuSpgIAIfkECRQAAQAsAAAAAAcABwAAAgqMYZeYzdscnKEAACH5BAUUAAEALAAAAAAHAAcAAAIJjGGpm6jO4kkFADs="); +} diff --git a/_src/getstarted.html b/_src/getstarted.html index 84faa32..5a89516 100644 --- a/_src/getstarted.html +++ b/_src/getstarted.html @@ -52,7 +52,8 @@ redirect_from:
-
+                    
+
{ "asset": { "data": { From 34fac3a543bd4074344096b9eeb9f5ca726de6aa Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Tue, 27 Jun 2017 23:27:29 +0200 Subject: [PATCH 36/62] lint lint --- _src/_assets/styles/bigchain/_menus.scss | 44 ++++++++++++------------ _src/_assets/styles/bigchain/_nyan.scss | 16 +++++---- 2 files changed, 32 insertions(+), 28 deletions(-) diff --git a/_src/_assets/styles/bigchain/_menus.scss b/_src/_assets/styles/bigchain/_menus.scss index 933a527..71147da 100644 --- a/_src/_assets/styles/bigchain/_menus.scss +++ b/_src/_assets/styles/bigchain/_menus.scss @@ -338,33 +338,33 @@ margin-right: .2rem; margin-left: -1.2rem; } +} - &.sticky { - background: rgba(lighten($gray, 30%), .85); - backdrop-filter: saturate(200%) blur(10px); - box-shadow: 0 2px 6px rgba($gray-dark, .4); +.menu--sub.sticky { + background: rgba(lighten($gray, 30%), .85); + backdrop-filter: saturate(200%) blur(10px); + box-shadow: 0 2px 6px rgba($gray-dark, .4); - // fake less padding and smaller menu bar - // for performant and smoooth transition - transform: translate3d(0, -2rem, 0); + // fake less padding and smaller menu bar + // for performant and smoooth transition + transform: translate3d(0, -2rem, 0); - .menu__link { - @media ($screen-sm) { - transform: scale(.85) translate3d(0, .6rem, 0); - transform-origin: bottom; + .menu__link { + @media ($screen-sm) { + transform: scale(.85) translate3d(0, .6rem, 0); + transform-origin: bottom; + } + + &.active { + color: $headings-color; + + .number { + background: $headings-color; + color: $gray; } - &.active { - color: $headings-color; - - .number { - background: $headings-color; - color: $gray; - } - - &:after { - background: $headings-color; - } + &:after { + background: $headings-color; } } } diff --git a/_src/_assets/styles/bigchain/_nyan.scss b/_src/_assets/styles/bigchain/_nyan.scss index b1ec559..b86e8fa 100644 --- a/_src/_assets/styles/bigchain/_nyan.scss +++ b/_src/_assets/styles/bigchain/_nyan.scss @@ -1,6 +1,13 @@ // https://codepen.io/brunorcunha/pen/wikEI // highly modified +$red: #f80e1c; +$orange: #fc9729; +$yellow: #fffd38; +$green: #32fa2e; +$blue: #1998f3; +$violet: #6d2fee; + .nyan-container { position: relative; overflow: hidden; @@ -12,8 +19,7 @@ width: 34px; height: 33px; left: 50%; - - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMwAAAAgCAYAAABepJcLAAACiUlEQVR4nO2Yi23DMAxEvVMW6Ghdwzt1p7Qp4sKhKIkUqVyUXtEHBIlsPZ9J+bN9fG4bIcQGXICQlYALELIScAFCVgIuQMhKwAUIWQnboG27RkmRpQc9wB4mievXHiYaCj3o8QoePomffzcJodCDHq/iYRepTXTZ9c+KTEog9KAH0MMm0pvI2MHhQOhBjwSP7f680vM4xo03TIdC5CzeEcn0KFwqHl4XeqxfH7ex+77/0spDjktvGFVE6dyaSPaJqbqIE+Nxocf69XHefysPOeahYQ7RA7PIqTOjIqFAxCW46aKcmLQCocf0+pA1GvU45jmj/V40jNw42rlekVAgk1wyV/aVPeTYjJV9JAtZp1kePdSG0ZpGFak8UEVF3IE0HuwyXMyF+uYecltZ5Mj68HqMOBR5yFVECnU791JeSoe71xOI4pEVSq1I0R6IPGRdIOtDa+BjzIjH7a/mJn8rGqbWNH8ijhVsRMQciOGVYaZLtXEBHsg8ZA6o+sisU20xOB9bt2G0YCz3hhki5kCe4KJtg/AIraiTzo37SjfJIeJxvaM1bNHAd6oNY74FUd48RESGA6m8EQqFUjnBSA/zQjbBY+jlwxPqI8NDZiw/mxvmQaRzucsQyfDIdJEFivCQY5B5vFt91BaiM2r2ZpHOJS8qkuUx0wXhcfyO9mjegQDrw+uhubQosjffDhmIiLhDAbjQQ7/6orI49jeah4VizpaIZTUYxdMsMz1GXJAe6DzO8yOzmOXRa1bzSdG+t2xr3c5aIJ79vaML2gE9P9qjusMz2ve9g6lt6ynQ1pwZLl6fV3BBO6Dnz9hP5BhcxUvIfwcuQMhKwAUIWQm4ACErARcgZCXgAoSsxDdoVHw2ca8RoAAAAABJRU5ErkJggg=="); + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMwAAAAgCAYAAABepJcLAAACiUlEQVR4nO2Yi23DMAxEvVMW6Ghdwzt1p7Qp4sKhKIkUqVyUXtEHBIlsPZ9J+bN9fG4bIcQGXICQlYALELIScAFCVgIuQMhKwAUIWQnboG27RkmRpQc9wB4mievXHiYaCj3o8QoePomffzcJodCDHq/iYRepTXTZ9c+KTEog9KAH0MMm0pvI2MHhQOhBjwSP7f680vM4xo03TIdC5CzeEcn0KFwqHl4XeqxfH7ex+77/0spDjktvGFVE6dyaSPaJqbqIE+Nxocf69XHefysPOeahYQ7RA7PIqTOjIqFAxCW46aKcmLQCocf0+pA1GvU45jmj/V40jNw42rlekVAgk1wyV/aVPeTYjJV9JAtZp1kePdSG0ZpGFak8UEVF3IE0HuwyXMyF+uYecltZ5Mj68HqMOBR5yFVECnU791JeSoe71xOI4pEVSq1I0R6IPGRdIOtDa+BjzIjH7a/mJn8rGqbWNH8ijhVsRMQciOGVYaZLtXEBHsg8ZA6o+sisU20xOB9bt2G0YCz3hhki5kCe4KJtg/AIraiTzo37SjfJIeJxvaM1bNHAd6oNY74FUd48RESGA6m8EQqFUjnBSA/zQjbBY+jlwxPqI8NDZiw/mxvmQaRzucsQyfDIdJEFivCQY5B5vFt91BaiM2r2ZpHOJS8qkuUx0wXhcfyO9mjegQDrw+uhubQosjffDhmIiLhDAbjQQ7/6orI49jeah4VizpaIZTUYxdMsMz1GXJAe6DzO8yOzmOXRa1bzSdG+t2xr3c5aIJ79vaML2gE9P9qjusMz2ve9g6lt6ynQ1pwZLl6fV3BBO6Dnz9hP5BhcxUvIfwcuQMhKwAUIWQm4ACErARcgZCXgAoSsxDdoVHw2ca8RoAAAAABJRU5ErkJggg=='); // rainbow &:before { @@ -25,11 +31,10 @@ margin-right: 34px; width: 750%; height: 18px; - background: linear-gradient(to bottom, red 16%, orange 16%, orange 32%, yellow 32%, yellow 48%, green 48%, green 64%, blue 64%, blue 80%, violet 80%); + background: linear-gradient(to bottom, $red 16%, $orange 16%, $orange 32%, $yellow 32%, $yellow 48%, $green 48%, $green 64%, $blue 64%, $blue 80%, $violet 80%); opacity: .4; z-index: -1; } - animation: nyan .6s steps(6, end) infinite; } @@ -45,6 +50,5 @@ position: absolute; z-index: 1; background-size: 100% 100%; - - background-image: url("data:image/gif;base64,R0lGODlhBwAHAIABAP///////yH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjU0NTY1ODg4RDlBODExRTI5MzZGQjVEN0ZDMUFENjhCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjU0NTY1ODg5RDlBODExRTI5MzZGQjVEN0ZDMUFENjhCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NTQ1NjU4ODZEOUE4MTFFMjkzNkZCNUQ3RkMxQUQ2OEIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NTQ1NjU4ODdEOUE4MTFFMjkzNkZCNUQ3RkMxQUQ2OEIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQJFAABACwAAAAABwAHAAACB4yPqQfrXwAAIfkEBRQAAQAsAAAAAAcABwAAAgmMj2mQzPiUNAUAIfkECRQAAQAsAQABAAUABQAAAgdMYGm4mlwAACH5BAkUAAEALAAAAAAHAAcAAAILjGEZqA0IWUuSpgIAIfkECRQAAQAsAAAAAAcABwAAAgqMYZeYzdscnKEAACH5BAUUAAEALAAAAAAHAAcAAAIJjGGpm6jO4kkFADs="); + background-image: url('data:image/gif;base64,R0lGODlhBwAHAIABAP///////yH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjU0NTY1ODg4RDlBODExRTI5MzZGQjVEN0ZDMUFENjhCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjU0NTY1ODg5RDlBODExRTI5MzZGQjVEN0ZDMUFENjhCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NTQ1NjU4ODZEOUE4MTFFMjkzNkZCNUQ3RkMxQUQ2OEIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NTQ1NjU4ODdEOUE4MTFFMjkzNkZCNUQ3RkMxQUQ2OEIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQJFAABACwAAAAABwAHAAACB4yPqQfrXwAAIfkEBRQAAQAsAAAAAAcABwAAAgmMj2mQzPiUNAUAIfkECRQAAQAsAQABAAUABQAAAgdMYGm4mlwAACH5BAkUAAEALAAAAAAHAAcAAAILjGEZqA0IWUuSpgIAIfkECRQAAQAsAAAAAAcABwAAAgqMYZeYzdscnKEAACH5BAUUAAEALAAAAAAHAAcAAAIJjGGpm6jO4kkFADs='); } From 322fc2a71b9309c1a19b8bbfbf44fe0cdc852280 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Wed, 28 Jun 2017 00:45:26 +0200 Subject: [PATCH 37/62] use a nyan cat gif and be done with it --- _src/_assets/images/nyan.gif | Bin 0 -> 13704 bytes _src/_assets/images/nyan2.gif | Bin 0 -> 39325 bytes _src/_assets/javascripts/bigchain/nyan.js | 97 -------------------- _src/_assets/javascripts/page-getstarted.js | 4 +- _src/_assets/styles/_page-getstarted.scss | 1 - _src/_assets/styles/bigchain/_nyan.scss | 69 +++++--------- _src/getstarted.html | 3 +- 7 files changed, 28 insertions(+), 146 deletions(-) create mode 100644 _src/_assets/images/nyan.gif create mode 100644 _src/_assets/images/nyan2.gif delete mode 100644 _src/_assets/javascripts/bigchain/nyan.js diff --git a/_src/_assets/images/nyan.gif b/_src/_assets/images/nyan.gif new file mode 100644 index 0000000000000000000000000000000000000000..dc0fb4ce4475b150e44346eb1413c4224137fe57 GIT binary patch literal 13704 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 literal 0 HcmV?d00001 diff --git a/_src/_assets/images/nyan2.gif b/_src/_assets/images/nyan2.gif new file mode 100644 index 0000000000000000000000000000000000000000..2df66f93c5444cd68cec01b4d9f53cdd7f974a44 GIT binary patch literal 39325 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 literal 0 HcmV?d00001 diff --git a/_src/_assets/javascripts/bigchain/nyan.js b/_src/_assets/javascripts/bigchain/nyan.js deleted file mode 100644 index fa93c1f..0000000 --- a/_src/_assets/javascripts/bigchain/nyan.js +++ /dev/null @@ -1,97 +0,0 @@ -// https://codepen.io/brunorcunha/pen/wikEI -// highly modified - -// var posX = 100, -// posY = 100, -// px = 0, -// py = 0, -// an = false; -var nyan = $('.nyan'); -var nyanToAppend = $('.nyan-container') -//var rainbow = null; -var altura = 800; -var largura = parseInt(nyanToAppend.width()); -var tamanhoTela = parseInt(largura / 9); -var pilha = []; - -function getRandomInt(min, max) { - return Math.floor(Math.random() * (max - min + 1)) + min; -} - -function criarEstrela() { - var rand = getRandomInt(3, 14); - var tempoDeVida = getRandomInt(5, 10); - var star = $('
').css({ - width: rand + 'px', - height: rand + 'px', - left: largura - 10 + 'px', - top: Math.floor((Math.random() * altura) + 1), - '-webkit-transition': 'all ' + tempoDeVida + 's linear', - '-webkit-transform': 'translate(0px, 0px)' - }); - nyanToAppend.append(star); - - window.setTimeout(function() { - star.css({ - '-webkit-transform': 'translate(-' + largura + 'px, 0px)' - }); - }, getRandomInt(5, 10) * 10); - - window.setTimeout(function() { - star.remove(); - }, tempoDeVida * 1000); -} - -// function moveNyan() { -// var tamX = nyan.width() / 2, -// tamY = nyan.height() / 2; -// px += (posX - px - tamX) / 50; -// py += (posY - py - tamY) / 50; -// -// nyan.css({ -// left: px + 'px', -// top: py + 'px' -// }); -// } -// function peidaArcoIris() { -// var qnt = Math.floor(nyan.position().left / 9) + 2; -// -// if (pilha.length >= qnt) -// pilha.pop(); -// -// pilha.unshift(py); -// -// rainbow.hide(); -// for (var i = 0; i < qnt; i++) { -// var am = (i % 2); -// if (an) -// am = (i % 2) -// ? 0 -// : 1; -// -// rainbow.eq(qnt - i).css({ -// top: pilha[i] + am -// }).show(); -// } -// } - -// window.setInterval(function() { -// moveNyan(); -// peidaArcoIris(); -// }, 10); - -window.setInterval(function() { - criarEstrela(); -}, 300); - -// window.setInterval(function() { -// an = !an; -// }, 500); - -// var frame = 0; -// window.setInterval(function() { -// nyan.css({ -// 'background-position': 34 *frame + 'px' -// }); -// frame++; -// }, 100); diff --git a/_src/_assets/javascripts/page-getstarted.js b/_src/_assets/javascripts/page-getstarted.js index 1c330e8..daffbcf 100644 --- a/_src/_assets/javascripts/page-getstarted.js +++ b/_src/_assets/javascripts/page-getstarted.js @@ -85,12 +85,14 @@ window.addEventListener('DOMContentLoaded', function domload(event) { const waiting = document.getElementsByClassName('waiting')[0] const responseArea = document.getElementsByClassName('response')[0] const output = document.getElementsByClassName('output')[0] + const messageInitial = document.getElementsByClassName('message')[0] const messageSuccess = document.getElementsByClassName('message--success')[0] const messageFail = document.getElementsByClassName('message--fail')[0] const transactionLink = document.getElementsByClassName('transaction-link')[0] conn.postTransaction(txSigned).then((response) => { waiting.classList.add('hide') + messageInitial.classList.add('hide') responseArea.classList.remove('hide') messageSuccess.classList.remove('hide') @@ -104,7 +106,7 @@ window.addEventListener('DOMContentLoaded', function domload(event) { postButton.classList.add('disabled') postButton.style.opacity = 0 - //=include bigchain/nyan.js + responseArea.children[0].classList.add('nyan') }, reason => { // Error! console.log(reason) diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss index 3fcbfbe..2748ba2 100644 --- a/_src/_assets/styles/_page-getstarted.scss +++ b/_src/_assets/styles/_page-getstarted.scss @@ -59,7 +59,6 @@ pre { min-height: 340px; border: 1px solid $gray-dark; - background: none; line-height: 1.3; } diff --git a/_src/_assets/styles/bigchain/_nyan.scss b/_src/_assets/styles/bigchain/_nyan.scss index b86e8fa..afbcafc 100644 --- a/_src/_assets/styles/bigchain/_nyan.scss +++ b/_src/_assets/styles/bigchain/_nyan.scss @@ -1,54 +1,33 @@ -// https://codepen.io/brunorcunha/pen/wikEI -// highly modified - -$red: #f80e1c; -$orange: #fc9729; -$yellow: #fffd38; -$green: #32fa2e; -$blue: #1998f3; -$violet: #6d2fee; - -.nyan-container { - position: relative; - overflow: hidden; -} - .nyan { - z-index: 10; - position: absolute; - width: 34px; - height: 33px; - left: 50%; - background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMwAAAAgCAYAAABepJcLAAACiUlEQVR4nO2Yi23DMAxEvVMW6Ghdwzt1p7Qp4sKhKIkUqVyUXtEHBIlsPZ9J+bN9fG4bIcQGXICQlYALELIScAFCVgIuQMhKwAUIWQnboG27RkmRpQc9wB4mievXHiYaCj3o8QoePomffzcJodCDHq/iYRepTXTZ9c+KTEog9KAH0MMm0pvI2MHhQOhBjwSP7f680vM4xo03TIdC5CzeEcn0KFwqHl4XeqxfH7ex+77/0spDjktvGFVE6dyaSPaJqbqIE+Nxocf69XHefysPOeahYQ7RA7PIqTOjIqFAxCW46aKcmLQCocf0+pA1GvU45jmj/V40jNw42rlekVAgk1wyV/aVPeTYjJV9JAtZp1kePdSG0ZpGFak8UEVF3IE0HuwyXMyF+uYecltZ5Mj68HqMOBR5yFVECnU791JeSoe71xOI4pEVSq1I0R6IPGRdIOtDa+BjzIjH7a/mJn8rGqbWNH8ijhVsRMQciOGVYaZLtXEBHsg8ZA6o+sisU20xOB9bt2G0YCz3hhki5kCe4KJtg/AIraiTzo37SjfJIeJxvaM1bNHAd6oNY74FUd48RESGA6m8EQqFUjnBSA/zQjbBY+jlwxPqI8NDZiw/mxvmQaRzucsQyfDIdJEFivCQY5B5vFt91BaiM2r2ZpHOJS8qkuUx0wXhcfyO9mjegQDrw+uhubQosjffDhmIiLhDAbjQQ7/6orI49jeah4VizpaIZTUYxdMsMz1GXJAe6DzO8yOzmOXRa1bzSdG+t2xr3c5aIJ79vaML2gE9P9qjusMz2ve9g6lt6ynQ1pwZLl6fV3BBO6Dnz9hP5BhcxUvIfwcuQMhKwAUIWQm4ACErARcgZCXgAoSsxDdoVHw2ca8RoAAAAABJRU5ErkJggg=='); + position: relative; + background: rgba(#144f8d, .5); - // rainbow &:before { content: ''; position: absolute; + left: 0; right: 0; - top: 50%; - margin-top: -9px; - margin-right: 34px; - width: 750%; - height: 18px; - background: linear-gradient(to bottom, $red 16%, $orange 16%, $orange 32%, $yellow 32%, $yellow 48%, $green 48%, $green 64%, $blue 64%, $blue 80%, $violet 80%); + top: 0; + bottom: 0; + background: url('../img/nyan2.gif') no-repeat left center; + background-size: 50%; + z-index: 0; + opacity: 0; + animation: nyan-fadein .6s ease-out forwards; + } + + code { + position: relative; + z-index: 2; + } +} + +@keyframes nyan-fadein { + 0% { + opacity: 0; + } + + 100% { opacity: .4; - z-index: -1; - } - animation: nyan .6s steps(6, end) infinite; -} - -@keyframes nyan { - to { - background-position: -204px center; } } - -.star { - width: 7px; - height: 7px; - position: absolute; - z-index: 1; - background-size: 100% 100%; - background-image: url('data:image/gif;base64,R0lGODlhBwAHAIABAP///////yH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjU0NTY1ODg4RDlBODExRTI5MzZGQjVEN0ZDMUFENjhCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjU0NTY1ODg5RDlBODExRTI5MzZGQjVEN0ZDMUFENjhCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NTQ1NjU4ODZEOUE4MTFFMjkzNkZCNUQ3RkMxQUQ2OEIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NTQ1NjU4ODdEOUE4MTFFMjkzNkZCNUQ3RkMxQUQ2OEIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQJFAABACwAAAAABwAHAAACB4yPqQfrXwAAIfkEBRQAAQAsAAAAAAcABwAAAgmMj2mQzPiUNAUAIfkECRQAAQAsAQABAAUABQAAAgdMYGm4mlwAACH5BAkUAAEALAAAAAAHAAcAAAILjGEZqA0IWUuSpgIAIfkECRQAAQAsAAAAAAcABwAAAgqMYZeYzdscnKEAACH5BAUUAAEALAAAAAAHAAcAAAIJjGGpm6jO4kkFADs='); -} diff --git a/_src/getstarted.html b/_src/getstarted.html index 5a89516..84faa32 100644 --- a/_src/getstarted.html +++ b/_src/getstarted.html @@ -52,8 +52,7 @@ redirect_from:
-
-
+
 {
   "asset": {
     "data": {

From dc8310e2f7b31ccc9a466a8bdeb044065a1ac31d Mon Sep 17 00:00:00 2001
From: Matthias Kretschmann 
Date: Wed, 28 Jun 2017 15:57:38 +0200
Subject: [PATCH 38/62] code examples and message typing interaction

---
 _src/_assets/javascripts/page-getstarted.js | 23 ++++++-
 _src/_assets/styles/_page-getstarted.scss   | 42 +++++++++++++
 _src/getstarted.html                        | 70 +++++++++++++++++++++
 3 files changed, 134 insertions(+), 1 deletion(-)

diff --git a/_src/_assets/javascripts/page-getstarted.js b/_src/_assets/javascripts/page-getstarted.js
index daffbcf..0b9cffb 100644
--- a/_src/_assets/javascripts/page-getstarted.js
+++ b/_src/_assets/javascripts/page-getstarted.js
@@ -1,5 +1,6 @@
 //=require gumshoe/dist/js/gumshoe.js
 
+//=include bigchain/tab.js
 //=include bigchain/smoothscroll.js
 //=include bigchain/newsletter.js
 
@@ -55,12 +56,32 @@ window.addEventListener('DOMContentLoaded', function domload(event) {
     const postButton = document.getElementById('post')
     const messageInput = document.getElementById('message')
 
-    // quick form validation
+    // nasty jquery inside of here, YOLO
+    $(".highlight code:contains('Blockchain all the things!')").html(function(_, html) {
+        return html.replace(/(Blockchain all the things!)/g, '$1');
+    })
+
+    const codeMessages = document.querySelectorAll('.code-example__message')
+
+    function updateMessage(content) {
+        for (var codeMessage of codeMessages) {
+            codeMessage.textContent = content
+        }
+    }
+    // empty default message
+    updateMessage('')
+
+    // quick form validation, live update code example with user input
     messageInput.addEventListener('input', function() {
         if (messageInput.value === '') {
             postButton.setAttribute('disabled', '')
+            // empty message again
+            updateMessage('')
         } else {
             postButton.removeAttribute('disabled')
+
+            // update code message
+            updateMessage(messageInput.value)
         }
     })
 
diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss
index 2748ba2..f8bcca1 100644
--- a/_src/_assets/styles/_page-getstarted.scss
+++ b/_src/_assets/styles/_page-getstarted.scss
@@ -71,6 +71,48 @@
     font-size: $font-size-base;
 }
 
+.code-example {
+    @include transition;
+    opacity: .5;
+
+    &:hover {
+        opacity: 1;
+    }
+
+    .nav-link,
+    pre {
+        font-size: $font-size-xs;
+    }
+
+    .nav-tabs {
+        border-bottom-color: $gray-light;
+    }
+
+    .nav-link {
+        padding-top: $spacer / 4;
+        padding-bottom: $spacer / 4;
+        margin-bottom: -2px;
+
+        &:hover,
+        &:focus {
+            background: none;
+        }
+
+        &.active {
+            border-bottom: 2px solid $gray-light;
+        }
+    }
+
+    pre {
+        background: none;
+        padding: $spacer * 1.5 0;
+    }
+}
+
+.code-example__message {
+    font-weight: $font-weight-bold;
+}
+
 .section-title--numbered {
     span {
         text-align: center;
diff --git a/_src/getstarted.html b/_src/getstarted.html
index 84faa32..7863331 100644
--- a/_src/getstarted.html
+++ b/_src/getstarted.html
@@ -43,6 +43,76 @@ redirect_from:
                     
 
                 
+
+                
+
             
From 5409a0f0ec32f39d6a2e325d5584948b3c28a052 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Wed, 28 Jun 2017 17:13:20 +0200 Subject: [PATCH 39/62] fixes --- _src/_assets/javascripts/page-getstarted.js | 40 +++++++++++--------- _src/_assets/styles/_page-getstarted.scss | 29 ++++++-------- _src/_assets/styles/bigchain/_variables.scss | 2 +- _src/getstarted.html | 4 +- 4 files changed, 36 insertions(+), 39 deletions(-) diff --git a/_src/_assets/javascripts/page-getstarted.js b/_src/_assets/javascripts/page-getstarted.js index 0b9cffb..1ea384e 100644 --- a/_src/_assets/javascripts/page-getstarted.js +++ b/_src/_assets/javascripts/page-getstarted.js @@ -14,30 +14,34 @@ jQuery(function($) { }) -// -// Sticky nav -// -const menu = document.getElementsByClassName('menu--sub')[0] - -if ( window.innerWidth >= 768 ) { - const offset = menu.offsetTop - - window.addEventListener('scroll', function() { - if (offset < window.pageYOffset) { - menu.classList.add('sticky') - } else { - menu.classList.remove('sticky') - } - }, false) -} - - // // Scrollspy // gumshoe.init() +// +// Sticky nav +// +function stickyNav() { + const menu = document.getElementsByClassName('menu--sub')[0] + + if ( window.innerWidth >= 768 ) { + const offset = menu.offsetTop + + window.addEventListener('scroll', function() { + if (offset < window.pageYOffset) { + menu.classList.add('sticky') + } else { + menu.classList.remove('sticky') + } + }, false) + } +} + +stickyNav() + + // // BigchainDB transaction tool // diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss index f8bcca1..d7c9f08 100644 --- a/_src/_assets/styles/_page-getstarted.scss +++ b/_src/_assets/styles/_page-getstarted.scss @@ -10,12 +10,16 @@ .section-title { font-size: $font-size-h3; text-align: left; - margin-top: $spacer * 3; - margin-bottom: $spacer * 3; + margin-top: $spacer * 2; + margin-bottom: $spacer * 2; &:after { display: none; } + + + .grid { + margin-bottom: 0; + } } } @@ -52,6 +56,7 @@ font-style: italic; border: 1px solid $gray-dark; background: none; + overflow-x: hidden; } } @@ -73,11 +78,6 @@ .code-example { @include transition; - opacity: .5; - - &:hover { - opacity: 1; - } .nav-link, pre { @@ -86,6 +86,7 @@ .nav-tabs { border-bottom-color: $gray-light; + opacity: .6; } .nav-link { @@ -105,14 +106,11 @@ pre { background: none; - padding: $spacer * 1.5 0; + padding: $spacer * 1.5 0 0; + margin-bottom: 0; } } -.code-example__message { - font-weight: $font-weight-bold; -} - .section-title--numbered { span { text-align: center; @@ -231,14 +229,9 @@ .starbase--intro { min-height: 10rem; margin-top: -($spacer * 8); - margin-bottom: 2%; - - @media ($screen-sm) { - margin-bottom: 4%; - } .starbase__image { - margin-top: -($spacer * 8); + margin-top: -($spacer * 12); // surface layer &:before { diff --git a/_src/_assets/styles/bigchain/_variables.scss b/_src/_assets/styles/bigchain/_variables.scss index d24c0af..7d1f745 100644 --- a/_src/_assets/styles/bigchain/_variables.scss +++ b/_src/_assets/styles/bigchain/_variables.scss @@ -216,7 +216,7 @@ $state-success-text: #fff !default; $state-success-bg: rgba($brand-primary, .4) !default; $state-info-text: #fff !default; -$state-info-bg: rgba($brand-main-violet, .4) !default; +$state-info-bg: rgba($brand-main-blue-light, .2) !default; $state-warning-text: #fff !default; $state-warning-bg: rgba($brand-warning, .4) !default; diff --git a/_src/getstarted.html b/_src/getstarted.html index 7863331..96d9b30 100644 --- a/_src/getstarted.html +++ b/_src/getstarted.html @@ -155,13 +155,13 @@ conn.postTransaction(txSigned)
-
+
From 01ed74f97d56b0695bd5df3fcf158c01d71c9edc Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Wed, 28 Jun 2017 20:49:37 +0200 Subject: [PATCH 40/62] revised front page intro section --- _src/_assets/styles/_page-front.scss | 1 + _src/index.html | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/_src/_assets/styles/_page-front.scss b/_src/_assets/styles/_page-front.scss index b82477b..d367c34 100644 --- a/_src/_assets/styles/_page-front.scss +++ b/_src/_assets/styles/_page-front.scss @@ -32,6 +32,7 @@ display: block; margin-bottom: 0; margin-top: 0; + hyphens: auto; } sub { diff --git a/_src/index.html b/_src/index.html index 1dd79a9..a9e284c 100644 --- a/_src/index.html +++ b/_src/index.html @@ -18,6 +18,8 @@ intro: keyfeatures: - title: "Decentralization" icon: "icon-nodes" + - title: "Query" + icon: "icon-search" - title: "Immutability" icon: "icon-castle" - title: "Scaling" @@ -25,7 +27,8 @@ intro: - title: "Native Assets" icon: "icon-diamond" text: "BigchainDB allows developers and enterprise to deploy blockchain proof-of-concepts, platforms and applications with a scalable blockchain database, supporting a wide range of industries and use cases." - button: "All Features" + button1: "All Features" + button2: "Get Started" --- {% include hero.html %} @@ -55,7 +58,7 @@ intro:

{{ page.intro.text }}

- {{ page.intro.button }} + {{ page.intro.button1 }} {{ page.intro.button2 }}

From e52c82e1f98e27be6a2e40e553e6b2d4377d15f3 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Wed, 28 Jun 2017 20:59:47 +0200 Subject: [PATCH 41/62] reorganize lots of CTAs, selectively show IPDB banner --- _src/_includes/footer.html | 4 +++- _src/_layouts/page.html | 2 -- _src/_layouts/partner.html | 2 +- _src/_layouts/usecase.html | 2 +- _src/about.md | 4 +++- _src/index.html | 1 + _src/usecases.html | 1 + 7 files changed, 10 insertions(+), 6 deletions(-) diff --git a/_src/_includes/footer.html b/_src/_includes/footer.html index ff5317b..4370341 100644 --- a/_src/_includes/footer.html +++ b/_src/_includes/footer.html @@ -1,4 +1,6 @@ -{% include ipdb.html %} +{% if page.ipdb %} + {% include ipdb.html %} +{% endif %}
diff --git a/_src/_layouts/page.html b/_src/_layouts/page.html index 1a0eb9a..2ad6cca 100644 --- a/_src/_layouts/page.html +++ b/_src/_layouts/page.html @@ -49,6 +49,4 @@ layout: base
{% include sections/section-newsletter.html %} - - {% include sections/section-cta-community.html %} {% endif %} diff --git a/_src/_layouts/partner.html b/_src/_layouts/partner.html index e88e812..432cb44 100644 --- a/_src/_layouts/partner.html +++ b/_src/_layouts/partner.html @@ -4,7 +4,7 @@ layout: base cta: title: Meet BigchainDB description: The scalable blockchain database - button: Get started + button: Learn More ---
diff --git a/_src/getstarted.html b/_src/getstarted.html index 4e44b08..3feeeb9 100644 --- a/_src/getstarted.html +++ b/_src/getstarted.html @@ -3,6 +3,7 @@ layout: page title: Get started description: "Explore drivers, tools & documentation to get started with IPDB & BigchainDB" +tagline: "Explore drivers, tools & documentation" js: page-getstarted.min.js From b88dcf7c80a8ddc03054d9aaf1d6931f0b40c004 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Thu, 29 Jun 2017 15:16:10 +0200 Subject: [PATCH 50/62] all the mobile tweaks * closes #137 --- _src/_assets/styles/_page-getstarted.scss | 33 ++++- _src/_assets/styles/bigchain/_header.scss | 7 +- _src/getstarted.html | 140 +++++++++++----------- 3 files changed, 105 insertions(+), 75 deletions(-) diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss index 309c95f..d7807f2 100644 --- a/_src/_assets/styles/_page-getstarted.scss +++ b/_src/_assets/styles/_page-getstarted.scss @@ -7,10 +7,13 @@ .section--firsttransaction { .section-title { font-size: $font-size-h3; - margin-top: -($spacer * 2); margin-bottom: $spacer * 3; text-align: left; + @media ($screen-sm) { + margin-top: -($spacer * 2); + } + &:after { display: none; } @@ -25,7 +28,10 @@ // mnml frm background: none; padding: 0; - min-height: 340px; + + @media ($screen-sm) { + min-height: 340px; + } .form-group:first-child { margin-top: 0; @@ -42,7 +48,7 @@ width: 100%; pre { - min-height: 340px; + min-height: 200px; display: flex; align-items: center; justify-content: center; @@ -51,14 +57,21 @@ border: 1px solid $gray-dark; background: none; overflow-x: hidden; + + @media ($screen-sm) { + min-height: 340px; + } } } .response { pre { - min-height: 340px; border: 1px solid $gray-dark; line-height: 1.3; + + @media ($screen-sm) { + min-height: 340px; + } } code { @@ -72,6 +85,12 @@ .code-example { @include transition; + margin-top: $spacer * 2; + + @media ($screen-sm) { + max-width: 50%; + margin-top: 0; + } .nav-link, pre { @@ -205,7 +224,11 @@ // Drivers starbase // All magic numbers, gonna wing it visually .starbase--drivers { - min-height: 12rem; + min-height: 7rem; + + @media ($screen-md) { + min-height: 12rem; + } .starbase__image { // surface layer diff --git a/_src/_assets/styles/bigchain/_header.scss b/_src/_assets/styles/bigchain/_header.scss index 2050dd2..d3a0812 100644 --- a/_src/_assets/styles/bigchain/_header.scss +++ b/_src/_assets/styles/bigchain/_header.scss @@ -3,8 +3,13 @@ } .header__content { - padding: ($spacer * 4) 0; + padding: ($spacer * 3) 0; text-align: center; + + @media ($screen-sm) { + padding-top: ($spacer * 4); + padding-bottom: ($spacer * 4); + } } // intro animation diff --git a/_src/getstarted.html b/_src/getstarted.html index 3feeeb9..4196350 100644 --- a/_src/getstarted.html +++ b/_src/getstarted.html @@ -37,75 +37,6 @@ redirect_from: - -
@@ -135,6 +66,77 @@ conn.postTransaction(txSigned)
+ +
+ +
{{ content.server.bdb.pretitle }}

{{ content.server.bdb.title }}

{{ content.server.bdb.description }}

- {{ content.server.bdb.button }} + {{ content.server.bdb.button }}
From 51b6fb849d4ea41ebb1cf560951573540dee00ed Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Thu, 29 Jun 2017 16:43:32 +0200 Subject: [PATCH 54/62] fix code examples indentation --- _src/getstarted.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/_src/getstarted.html b/_src/getstarted.html index 2342922..685e859 100644 --- a/_src/getstarted.html +++ b/_src/getstarted.html @@ -87,7 +87,7 @@ redirect_from: {% capture curl %} ```bash curl -X "POST" "https://test.ipdb.io/api/v1/transactions/" \ --d $'{ message: "Blockchain all the things!" }' + -d $'{ message: "Blockchain all the things!" }' ``` {% endcapture %}{{ curl | markdownify }}
@@ -103,12 +103,12 @@ bdb = BigchainDB('https://test.ipdb.io/api/v1/') alice = generate_keypair() tx = bdb.transactions.prepare( -metadata={ "message": "Blockchain all the things!" } + metadata={ "message": "Blockchain all the things!" } ) txSigned = bdb.transactions.fulfill( -tx, -private_keys=alice.private_key + tx, + private_keys=alice.private_key ) bdb.transactions.send(txSigned) @@ -124,7 +124,7 @@ const conn = new driver.Connection('https://test.ipdb.io/api/v1/') const alice = new driver.Ed25519Keypair() const tx = driver.Transaction.makeCreateTransaction( -{ message: "Blockchain all the things!" } + { message: "Blockchain all the things!" } ) const txSigned = driver.Transaction.signTransaction(tx, alice.privateKey) From d1af7935ca1c188c8bee6f70563bf17f0de6f638 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Thu, 29 Jun 2017 16:53:15 +0200 Subject: [PATCH 55/62] better visibility of brackets in code examples --- _src/_assets/styles/_page-getstarted.scss | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/_src/_assets/styles/_page-getstarted.scss b/_src/_assets/styles/_page-getstarted.scss index c164127..6371cee 100644 --- a/_src/_assets/styles/_page-getstarted.scss +++ b/_src/_assets/styles/_page-getstarted.scss @@ -121,9 +121,13 @@ background: none; padding: $spacer * 1.5 0 0; margin-bottom: 0; - overflow-y: hidden; + overflow-y: auto; overflow-x: auto; } + + .highlight .p { + color: lighten(#41706f, 25%); + } } .section-title--numbered { From 1c016cd25b4749be409c609c760bc8e95def7352 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Thu, 29 Jun 2017 21:06:01 +0200 Subject: [PATCH 56/62] nyan cleanup --- _src/_assets/images/nyan.gif | Bin 13704 -> 39325 bytes _src/_assets/images/nyan2.gif | Bin 39325 -> 0 bytes _src/_assets/styles/bigchain/_nyan.scss | 9 +++++---- 3 files changed, 5 insertions(+), 4 deletions(-) delete mode 100644 _src/_assets/images/nyan2.gif diff --git a/_src/_assets/images/nyan.gif b/_src/_assets/images/nyan.gif index dc0fb4ce4475b150e44346eb1413c4224137fe57..2df66f93c5444cd68cec01b4d9f53cdd7f974a44 100644 GIT binary patch literal 39325 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 literal 13704 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 diff --git a/_src/_assets/images/nyan2.gif b/_src/_assets/images/nyan2.gif deleted file mode 100644 index 2df66f93c5444cd68cec01b4d9f53cdd7f974a44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39325 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 diff --git a/_src/_assets/styles/bigchain/_nyan.scss b/_src/_assets/styles/bigchain/_nyan.scss index afbcafc..763f513 100644 --- a/_src/_assets/styles/bigchain/_nyan.scss +++ b/_src/_assets/styles/bigchain/_nyan.scss @@ -1,6 +1,5 @@ .nyan { position: relative; - background: rgba(#144f8d, .5); &:before { content: ''; @@ -9,11 +8,11 @@ right: 0; top: 0; bottom: 0; - background: url('../img/nyan2.gif') no-repeat left center; + background: url('../img/nyan.gif') no-repeat left center; background-size: 50%; z-index: 0; opacity: 0; - animation: nyan-fadein .6s ease-out forwards; + animation: nyan-appear .6s ease-out forwards; } code { @@ -22,12 +21,14 @@ } } -@keyframes nyan-fadein { +@keyframes nyan-appear { 0% { opacity: 0; + transform: translate3d(-5rem, 0, 0); } 100% { opacity: .4; + transform: translate3d(0, 0, 0); } } From 8da52ced51cc6081b23bc0f6885033ec04f7a16b Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Thu, 29 Jun 2017 21:33:51 +0200 Subject: [PATCH 57/62] assets cleanup for smaller page sizes * isolate some SVGs and don't include in sprite * use smaller, cropped image for all default headers --- _config.yml | 2 +- _src/_assets/images/header-berlin.jpg | Bin 0 -> 53830 bytes .../images/{ => nosprite}/architecture.svg | 0 .../images/{ => nosprite}/stack-blockchain.svg | 0 .../images/{ => nosprite}/stack-traditional.svg | 0 .../images/{ => nosprite}/starbase-drivers.svg | 0 .../images/{ => nosprite}/starbase-server.svg | 0 _src/_assets/javascripts/page-getstarted.js | 1 + _src/_assets/styles/bigchain/_header.scss | 2 ++ _src/features.html | 4 ++-- _src/getstarted.html | 4 ++-- gulpfile.babel.js | 2 +- 12 files changed, 9 insertions(+), 6 deletions(-) create mode 100644 _src/_assets/images/header-berlin.jpg rename _src/_assets/images/{ => nosprite}/architecture.svg (100%) rename _src/_assets/images/{ => nosprite}/stack-blockchain.svg (100%) rename _src/_assets/images/{ => nosprite}/stack-traditional.svg (100%) rename _src/_assets/images/{ => nosprite}/starbase-drivers.svg (100%) rename _src/_assets/images/{ => nosprite}/starbase-server.svg (100%) diff --git a/_config.yml b/_config.yml index 2b17634..c2b2a2b 100644 --- a/_config.yml +++ b/_config.yml @@ -40,7 +40,7 @@ social: url: https://www.linkedin.com/company/bigchaindb youtube: title: YouTube - url: https://www.youtube.com/channel/UCh0Y3p3kJ9oyz9CRgZaO05w + url: https://www.youtube.com/bigchaindb address: company: BigchainDB GmbH diff --git a/_src/_assets/images/header-berlin.jpg b/_src/_assets/images/header-berlin.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bc7991b9772bd4e575278d3346f27db309b80007 GIT binary patch literal 53830 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 literal 0 HcmV?d00001 diff --git a/_src/_assets/images/architecture.svg b/_src/_assets/images/nosprite/architecture.svg similarity index 100% rename from _src/_assets/images/architecture.svg rename to _src/_assets/images/nosprite/architecture.svg diff --git a/_src/_assets/images/stack-blockchain.svg b/_src/_assets/images/nosprite/stack-blockchain.svg similarity index 100% rename from _src/_assets/images/stack-blockchain.svg rename to _src/_assets/images/nosprite/stack-blockchain.svg diff --git a/_src/_assets/images/stack-traditional.svg b/_src/_assets/images/nosprite/stack-traditional.svg similarity index 100% rename from _src/_assets/images/stack-traditional.svg rename to _src/_assets/images/nosprite/stack-traditional.svg diff --git a/_src/_assets/images/starbase-drivers.svg b/_src/_assets/images/nosprite/starbase-drivers.svg similarity index 100% rename from _src/_assets/images/starbase-drivers.svg rename to _src/_assets/images/nosprite/starbase-drivers.svg diff --git a/_src/_assets/images/starbase-server.svg b/_src/_assets/images/nosprite/starbase-server.svg similarity index 100% rename from _src/_assets/images/starbase-server.svg rename to _src/_assets/images/nosprite/starbase-server.svg diff --git a/_src/_assets/javascripts/page-getstarted.js b/_src/_assets/javascripts/page-getstarted.js index 1ea384e..51a1e42 100644 --- a/_src/_assets/javascripts/page-getstarted.js +++ b/_src/_assets/javascripts/page-getstarted.js @@ -46,6 +46,7 @@ stickyNav() // BigchainDB transaction tool // +// makes this file huuuuge, consider loading this as additional request //=include bigchaindb-driver/dist/browser/bigchaindb-driver.window.min.js window.addEventListener('DOMContentLoaded', function domload(event) { diff --git a/_src/_assets/styles/bigchain/_header.scss b/_src/_assets/styles/bigchain/_header.scss index 8ae5fc6..3ee5a6e 100644 --- a/_src/_assets/styles/bigchain/_header.scss +++ b/_src/_assets/styles/bigchain/_header.scss @@ -1,5 +1,7 @@ .header { @extend .background--photo; + background-image: url('../img/header-berlin.jpg'); + background-position: center bottom; } .header__content { diff --git a/_src/features.html b/_src/features.html index 8a28416..62adde4 100644 --- a/_src/features.html +++ b/_src/features.html @@ -154,14 +154,14 @@ js: page-features.min.js

Traditional Stack

BigchainDB can be seamlessly integrated into the traditional stack as a blockchain database for decentralized timestamping, certificates, smart contracts and transactions.
- +

Blockchain Stack

BigchainDB fills a missing gap in the emerging decentralized stack as a blockchain database that complements existing platforms, processing and file systems.
- +
diff --git a/_src/getstarted.html b/_src/getstarted.html index 685e859..0756d94 100644 --- a/_src/getstarted.html +++ b/_src/getstarted.html @@ -161,7 +161,7 @@ conn.postTransaction(txSigned) @@ -198,7 +198,7 @@ conn.postTransaction(txSigned) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 2d6feea..bbbff87 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -211,7 +211,7 @@ export const js = () => // // SVG sprite // -export const svg = () => src(SRC + '_assets/images/**/*.svg') +export const svg = () => src(SRC + '_assets/images/*.svg') .pipe($.if(isProduction || isStaging, $.imagemin({ svgoPlugins: [{ removeRasterImages: true }] }))) From 7eb63c079aed1ee9dd7c03e92bb4a2ddc774acb5 Mon Sep 17 00:00:00 2001 From: vrde Date: Thu, 6 Jul 2017 17:37:17 +0200 Subject: [PATCH 58/62] Remove curl from code samples --- _src/getstarted.html | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/_src/getstarted.html b/_src/getstarted.html index 0756d94..fc36ee3 100644 --- a/_src/getstarted.html +++ b/_src/getstarted.html @@ -71,10 +71,7 @@ redirect_from: