From 49148c97dfcf3dc9d5228225026dd00d40bf3d0b Mon Sep 17 00:00:00 2001 From: Yotam Mann Date: Mon, 13 Feb 2017 17:30:17 -0500 Subject: [PATCH] about and splash screen styling --- static/images/badgeAI.svg | 7 ++ static/images/badgeFriends.svg | 5 + static/images/magenta_bw_logo.png | Bin 0 -> 34557 bytes static/images/yellow_play_triangle.svg | 9 ++ static/src/Main.js | 4 + static/src/interface/About.js | 21 +++- static/src/interface/Splash.js | 31 +++-- static/style/about.css | 7 +- static/style/splash.css | 153 ++++++++++++++++++++----- 9 files changed, 194 insertions(+), 43 deletions(-) create mode 100644 static/images/badgeAI.svg create mode 100644 static/images/badgeFriends.svg create mode 100644 static/images/magenta_bw_logo.png create mode 100644 static/images/yellow_play_triangle.svg diff --git a/static/images/badgeAI.svg b/static/images/badgeAI.svg new file mode 100644 index 0000000..899ff6e --- /dev/null +++ b/static/images/badgeAI.svg @@ -0,0 +1,7 @@ + A . I . E x p e r i me n t This is an \ No newline at end of file diff --git a/static/images/badgeFriends.svg b/static/images/badgeFriends.svg new file mode 100644 index 0000000..fb94764 --- /dev/null +++ b/static/images/badgeFriends.svg @@ -0,0 +1,5 @@ + Made with some friends from \ No newline at end of file diff --git a/static/images/magenta_bw_logo.png b/static/images/magenta_bw_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..107e67f9c3046d391f514aaa76df6a2632884fb2 GIT binary patch literal 34557 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

giDB~-5;`yD-O3lL(JTs*{aeEFk?R}Md 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 + + + + + diff --git a/static/src/Main.js b/static/src/Main.js index dad4b77..63d1049 100644 --- a/static/src/Main.js +++ b/static/src/Main.js @@ -30,6 +30,10 @@ const splash = new Splash(document.body) splash.on('click', () => { keyboard.activate() tutorial.start() + about.showButton() +}) +splash.on('about', () => { + about.open(true) }) about.on('close', () => { if (!splash.loaded || splash.isOpen()){ diff --git a/static/src/interface/About.js b/static/src/interface/About.js index ac6042e..da71538 100644 --- a/static/src/interface/About.js +++ b/static/src/interface/About.js @@ -56,7 +56,7 @@ export class About extends events.EventEmitter{ const title = document.createElement('div') title.id = 'title' title.textContent = 'A.I. Duet' - content.appendChild(title) + // content.appendChild(title) const video = document.createElement('div') video.id = 'video' @@ -93,7 +93,7 @@ export class About extends events.EventEmitter{ this._container.classList.remove('visible') - if (this._ytplayer){ + if (this._ytplayer && this._ytplayer.stopVideo){ this._ytplayer.stopVideo() } this.emit('close') @@ -101,7 +101,7 @@ export class About extends events.EventEmitter{ ga('send', 'event', 'AI-Duet', 'Click', 'About - Close') } } - open(){ + open(play=false){ this._toggleButton.classList.add('close') this._toggleButton.classList.remove('open') @@ -111,8 +111,23 @@ export class About extends events.EventEmitter{ if (window.ga){ ga('send', 'event', 'AI-Duet', 'Click', 'About - Open') } + if (play){ + this._playVideo() + } + } + // waits until the player is ready to play the video, + // otherwise goes back into waiting loop + _playVideo(retries=0){ + if (this._ytplayer && this._ytplayer.playVideo){ + this._ytplayer.playVideo() + } else if (retries < 10 && this.isOpen()){ + setTimeout(() => this._playVideo(retries+1), 200); + } } isOpen(){ return this._container.classList.contains('visible') } + showButton(){ + this._toggleButton.classList.add('show') + } } \ No newline at end of file diff --git a/static/src/interface/Splash.js b/static/src/interface/Splash.js index 6ed7123..f09c839 100644 --- a/static/src/interface/Splash.js +++ b/static/src/interface/Splash.js @@ -40,7 +40,7 @@ class Splash extends events.EventEmitter{ const subTitle = document.createElement('div') subTitle.id = 'subTitle' titleContainer.appendChild(subTitle) - subTitle.textContent = 'Trade melodies with a neural network.' + subTitle.textContent = 'A piano that responds to you.' this._clicked = false const loader = this._loader = new Loader(titleContainer) @@ -50,10 +50,13 @@ class Splash extends events.EventEmitter{ this.emit('click') }) - const magenta = document.createElement('div') - magenta.id = 'magentaLink' - titleContainer.appendChild(magenta) - magenta.innerHTML = 'Built using Magenta' + const howItWorks = document.createElement('div') + howItWorks.id = 'howItWorks' + titleContainer.appendChild(howItWorks) + howItWorks.textContent = 'How it works' + howItWorks.addEventListener('click', () => { + this.emit('about') + }) const badges = document.createElement('div') badges.id = 'badges' @@ -67,15 +70,27 @@ class Splash extends events.EventEmitter{ badges.appendChild(aiExperiments) // break - const badgeBreak = document.createElement('div') - badgeBreak.id = 'badgeBreak' - badges.appendChild(badgeBreak) + const break0 = document.createElement('div') + break0.classList.add('badgeBreak') + badges.appendChild(break0) const googleFriends = document.createElement('a') googleFriends.id = 'googleFriends' googleFriends.classList.add('badge') badges.appendChild(googleFriends) + //break two + const break1 = document.createElement('div') + break1.classList.add('badgeBreak') + badges.appendChild(break1) + + const magenta = document.createElement('div') + magenta.id = 'magentaLink' + magenta.classList.add('badge') + const imgHtml = '

' + magenta.innerHTML = imgHtml + '
Built using Magenta
' + badges.appendChild(magenta) + const privacyAndTerms = document.createElement('div') privacyAndTerms.id = 'privacyAndTerms' privacyAndTerms.innerHTML = 'Privacy&Terms' diff --git a/static/style/about.css b/static/style/about.css index 72b3af3..3403e75 100644 --- a/static/style/about.css +++ b/static/style/about.css @@ -54,7 +54,11 @@ content: "?"; background-color: white; border-radius: 50%; + display: none; + } + &.show.open:before { + display: inline-block; } } @@ -95,6 +99,7 @@ $mediumScreen : 700px; #video { + top: 30px; width: 100%; cursor: pointer; position: relative; @@ -142,7 +147,7 @@ position: relative; text-transform: none; - margin-top: 30px; + margin-top: 50px; font-size: 16px; line-height: 25px; diff --git a/static/style/splash.css b/static/style/splash.css index e145519..74ed661 100644 --- a/static/style/splash.css +++ b/static/style/splash.css @@ -1,6 +1,6 @@ @import 'common.scss'; -$topMargin: 40px; +$topMargin: 35px; #splash { position: absolute; @@ -37,45 +37,49 @@ $topMargin: 40px; #title { line-height: 60px; - font-size: 65px; + font-size: 55px; letter-spacing: 1px; - font-weight: normal; + font-weight: 300; } - #subTitle { + #subTitle, #howItWorks { margin-top: $topMargin; letter-spacing: 0.8px; line-height: 30px; - font-size: 20px; - width: 80%; - margin-left: auto; - margin-right: auto; - text-align: center; - font-weight: normal; - } - - #magentaLink { - margin-top: $topMargin * 0.8; - letter-spacing: 0.8px; - line-height: 30px; - font-size: 20px; + font-size: 15px; width: 100%; margin-left: auto; margin-right: auto; text-align: center; - font-weight: normal; - color: #aaa; - font-size: 14px; + font-weight: 300; + } - a { - color: $orange; - text-decoration: underline; - cursor: pointer; - &:hover:active { - color: white; - } + #howItWorks { + $size : 20px; + $margin: 30px; + + color: $orange; + width: auto; + display: inline-block; + margin-left: $margin; + + &:before { + position: absolute; + width: $size; + height: $size; + margin-left: -$margin; + margin-top: $size / 4; + content : ''; + background-image: url(../images/yellow_play_triangle.svg); } + cursor: pointer; + + transition: transform 0.1s; + + &:hover { + transform: scale(1.1); + } } $loaderWidth: 200px; @@ -173,9 +177,10 @@ $topMargin: 40px; $badgeMargin : 20px; $badegOpacity: 0.7; - $smallScreen : 500px; - $smallBadgeWidth : 70px; + $smallScreen : 520px; + $smallBadgeWidth : 90px; $smallBadgeHeight: 40px; + $smallBadgeMargin: 8px; #badges { @@ -186,6 +191,14 @@ $topMargin: 40px; @media (max-width: $smallScreen) { // bottom: $badgeMargin * 0.5; + bottom: 40px; + $badgesWidth : $smallBadgeWidth * 3 + $smallBadgeMargin * 3 + 2px; + width: $badgesWidth; + left: 50%; + margin-left: -$badgesWidth/2; + // left: $smallBadgeMargin * 2; + // left: 50%; + // transform: translate(-50%, 0); } .badge { @@ -197,10 +210,14 @@ $topMargin: 40px; background-repeat: no-repeat; background-size: 100% 100%; opacity: $badegOpacity; + overflow: hidden; @media (max-width: $smallScreen) { width: $smallBadgeWidth; - height: $smallBadgeHeight; + height: $smallBadgeHeight; + font-size: 10px!important; + margin-right: $smallBadgeMargin; + opacity: 1; } } @@ -217,9 +234,71 @@ $topMargin: 40px; #googleFriends { cursor: initial; background-image: url(../images/badgeFriends_master.svg); + margin-right: 0px; } - #badgeBreak{ + + #magentaLink { + font-weight: bold; + font-size: 10px; + margin-left: 0px; + margin-right: 0px; + + &:hover { + opacity: 1; + } + + @media (max-width: $smallScreen) { + font-size: 8px; + } + + + div { + display: inline-block; + position: relative; + } + + $imgSize : $badgeHeight; + $smallImg : $smallBadgeHeight; + #img { + background-image: url(../images/magenta_bw_logo.png); + background-size: 90% 90%; + background-position: left center; + background-repeat: no-repeat; + width: $imgSize; + height: $imgSize; + float: left; + + @media (max-width: $smallScreen) { + width: $smallImg; + height: $smallImg; + } + } + + #text { + margin-top: 15px; + float: right; + height: 100%; + width: $badgeWidth - $imgSize; + + @media (max-width: $smallScreen) { + margin-top: 7px; + width: $smallBadgeWidth - $smallImg; + } + + a { + color: $orange; + text-decoration: underline; + cursor: pointer; + &:hover:active { + color: white; + } + } + } + + } + + .badgeBreak{ display: inline-block; position: relative; margin-right: $badgeMargin; @@ -235,6 +314,7 @@ $topMargin: 40px; @media (max-width: $smallScreen) { $smallBreakHeight: $smallBadgeHeight * $breakScale; height: $smallBreakHeight; + margin-right: $smallBadgeMargin; } } } @@ -248,6 +328,17 @@ $topMargin: 40px; width: auto; font-weight: normal; + @media (max-width: $smallScreen) { + bottom: $smallBadgeMargin; + left: 50%; + right: initial; + transform: translate(-50%, 0); + + * { + font-size: 8px!important; + } + } + * { height: 14px; line-height: 14px;