From 4fe3997df4663a766fc5ac099c31c0fea91c9750 Mon Sep 17 00:00:00 2001
From: chrisgarrity <chrisg@media.mit.edu>
Date: Thu, 26 Oct 2017 10:00:34 -0400
Subject: [PATCH 1/3] Top and middle banners for HoC 2017

Css animated top banner

Middle banner of activities - responsive

https://github.com/LLK/scratchr2/issues/4869

Also updated ttt see-more/open- modal link to be consistent with the new icon from Carl.
---
 src/components/ttt-tile/ttt-tile.jsx    |   2 +-
 src/components/ttt-tile/ttt-tile.scss   |   7 +-
 src/views/splash/hoc/middle-banner.jsx  | 115 ++++++++++++
 src/views/splash/hoc/middle-banner.scss |  49 +++++
 src/views/splash/hoc/top-banner.jsx     | 108 +++++++++++
 src/views/splash/hoc/top-banner.scss    | 227 ++++++++++++++++++++++++
 src/views/splash/l10n-static.json       |  10 ++
 src/views/splash/l10n.json              |  21 +++
 src/views/splash/presentation.jsx       |   9 +
 static/images/hoc/a.png                 | Bin 0 -> 4444 bytes
 static/images/hoc/c1.png                | Bin 0 -> 3015 bytes
 static/images/hoc/c2.png                | Bin 0 -> 3027 bytes
 static/images/hoc/doodads.png           | Bin 0 -> 12323 bytes
 static/images/hoc/h.png                 | Bin 0 -> 4791 bytes
 static/images/hoc/r.png                 | Bin 0 -> 3000 bytes
 static/images/hoc/s.png                 | Bin 0 -> 5374 bytes
 static/images/hoc/splash-left.png       | Bin 0 -> 11683 bytes
 static/images/hoc/splash-right.png      | Bin 0 -> 8649 bytes
 static/images/hoc/t.png                 | Bin 0 -> 4002 bytes
 static/svgs/modal/open-blue.svg         |  12 ++
 static/svgs/modal/open-white.svg        |  12 ++
 static/svgs/ttt/see-more.svg            |  17 --
 22 files changed, 568 insertions(+), 21 deletions(-)
 create mode 100644 src/views/splash/hoc/middle-banner.jsx
 create mode 100644 src/views/splash/hoc/middle-banner.scss
 create mode 100644 src/views/splash/hoc/top-banner.jsx
 create mode 100644 src/views/splash/hoc/top-banner.scss
 create mode 100644 src/views/splash/l10n-static.json
 create mode 100644 static/images/hoc/a.png
 create mode 100644 static/images/hoc/c1.png
 create mode 100644 static/images/hoc/c2.png
 create mode 100644 static/images/hoc/doodads.png
 create mode 100644 static/images/hoc/h.png
 create mode 100644 static/images/hoc/r.png
 create mode 100644 static/images/hoc/s.png
 create mode 100644 static/images/hoc/splash-left.png
 create mode 100644 static/images/hoc/splash-right.png
 create mode 100644 static/images/hoc/t.png
 create mode 100644 static/svgs/modal/open-blue.svg
 create mode 100644 static/svgs/modal/open-white.svg
 delete mode 100644 static/svgs/ttt/see-more.svg

diff --git a/src/components/ttt-tile/ttt-tile.jsx b/src/components/ttt-tile/ttt-tile.jsx
index db543c26f..4bcb3d109 100644
--- a/src/components/ttt-tile/ttt-tile.jsx
+++ b/src/components/ttt-tile/ttt-tile.jsx
@@ -47,7 +47,7 @@ var TTTTile = React.createClass({
                 {this.props.onGuideClick && (
                     <div className="ttt-tile-guides" onClick={this.props.onGuideClick}>
                         <FormattedMessage id='tile.guides' defaultMessage='See Cards and Guides'/>
-                        <img className="ttt-tile-see-more" src="/svgs/ttt/see-more.svg" />
+                        <img className="ttt-tile-open-modal" src="/svgs/modal/open-blue.svg" />
                     </div>
                 )}
             </div>
diff --git a/src/components/ttt-tile/ttt-tile.scss b/src/components/ttt-tile/ttt-tile.scss
index 9a244bcc1..2078777da 100644
--- a/src/components/ttt-tile/ttt-tile.scss
+++ b/src/components/ttt-tile/ttt-tile.scss
@@ -105,14 +105,15 @@
     font-size: .75rem;
     font-weight: 500;
 
-
     &:hover {
         background-color: lighten($link-blue, 40%);
     }
 }
 
-.ttt-tile-see-more {
+.ttt-tile-open-modal {
     display: inline-block;
     padding: 0 .25rem;
-    vertical-align: middle;
+    width: 1.25em;
+    height: 1.25em;
+    vertical-align: top;
 }
diff --git a/src/views/splash/hoc/middle-banner.jsx b/src/views/splash/hoc/middle-banner.jsx
new file mode 100644
index 000000000..31ce74fd1
--- /dev/null
+++ b/src/views/splash/hoc/middle-banner.jsx
@@ -0,0 +1,115 @@
+var FormattedMessage = require('react-intl').FormattedMessage;
+var injectIntl = require('react-intl').injectIntl;
+var MediaQuery = require('react-responsive');
+var React = require('react');
+
+var FlexRow = require('../../../components/flex-row/flex-row.jsx');
+var TitleBanner = require('../../../components/title-banner/title-banner.jsx');
+var TTTModal = require('../../../components/modal/ttt/modal.jsx');
+var TTTTile = require('../../../components/ttt-tile/ttt-tile.jsx');
+
+var frameless = require('../../../lib/frameless');
+var tiles = require('../../tips/ttt');
+
+require('../../../components/forms/button.scss');
+require('./middle-banner.scss');
+
+var MiddleBanner = injectIntl(React.createClass({
+    getInitialState: function () {
+        return {
+            currentTile: tiles[1],
+            TTTModalOpen: false
+        };
+    },
+    showTTTModal: function (tile) {
+        return this.setState({
+            currentTile: tile,
+            TTTModalOpen: true
+        });
+    },
+    hideTTTModal: function () {
+        return this.setState({TTTModalOpen: false});
+    },
+    renderTTTTiles: function () {
+        var formatMessage = this.props.intl.formatMessage;
+        
+        var tileObjects = {
+            flyTile: {
+                title: formatMessage({id: tiles[1].title}),
+                description: formatMessage({id: tiles[1].description}),
+                tutorialLoc: tiles[1].tutorialLoc,
+                activityLoc: formatMessage({id: tiles[1].activityLoc}),
+                guideLoc: formatMessage({id: tiles[1].guideLoc}),
+                thumbUrl: tiles[1].thumbUrl,
+                bannerUrl: tiles[1].bannerUrl
+            },
+            musicTile: {
+                title: formatMessage({id: tiles[2].title}),
+                description: formatMessage({id: tiles[2].description}),
+                tutorialLoc: tiles[2].tutorialLoc,
+                activityLoc: formatMessage({id: tiles[2].activityLoc}),
+                guideLoc: formatMessage({id: tiles[2].guideLoc}),
+                thumbUrl: tiles[2].thumbUrl,
+                bannerUrl: tiles[2].bannerUrl
+            },
+            pongTile: {
+                title: formatMessage({id: tiles[7].title}),
+                description: formatMessage({id: tiles[7].description}),
+                tutorialLoc: tiles[7].tutorialLoc,
+                activityLoc: formatMessage({id: tiles[7].activityLoc}),
+                guideLoc: formatMessage({id: tiles[7].guideLoc}),
+                thumbUrl: tiles[7].thumbUrl,
+                bannerUrl: tiles[7].bannerUrl
+            }
+        };
+        
+        return [
+            <TTTTile
+                key={1}
+                className="mod-banner"
+                onGuideClick={this.showTTTModal.bind(this, tileObjects.flyTile)}
+                {...tileObjects.flyTile}
+            />,
+            <TTTTile
+                key={2}
+                className="mod-banner"
+                onGuideClick={this.showTTTModal.bind(this, tileObjects.musicTile)}
+                {...tileObjects.musicTile}
+            />,
+            <TTTTile
+                key={7}
+                className="mod-banner mod-last-tile"
+                onGuideClick={this.showTTTModal.bind(this, tileObjects.pongTile)}
+                {...tileObjects.pongTile}
+            />
+        ];
+    },
+    render: function () {
+        return (
+            <TitleBanner className="mod-splash-middle">
+                <div className="middle-banner inner">
+                    <FlexRow className="middle-banner-header">
+                        <h1 className="middle-banner-header-h1">
+                            <FormattedMessage id="middle-banner.header" />
+                        </h1>
+                        <a href="/tips" className="button mod-ttt-try-button">
+                            <FormattedMessage id="middle-banner.ttt" />
+                        </a>
+                    </FlexRow>
+                    <MediaQuery minWidth={frameless.tablet}>
+                        <FlexRow className="middle-banner-tiles">
+                            {this.renderTTTTiles()}
+                        </FlexRow>
+                        <TTTModal
+                            isOpen={this.state.TTTModalOpen}
+                            onRequestClose={this.hideTTTModal}
+                            {...this.state.currentTile}
+                        />
+                    </MediaQuery>
+                </div>
+            </TitleBanner>
+        );
+    }
+}));
+
+module.exports = MiddleBanner;
diff --git a/src/views/splash/hoc/middle-banner.scss b/src/views/splash/hoc/middle-banner.scss
new file mode 100644
index 000000000..2e39668d4
--- /dev/null
+++ b/src/views/splash/hoc/middle-banner.scss
@@ -0,0 +1,49 @@
+@import "../../../colors";
+@import "../../../frameless";
+
+.title-banner.mod-splash-middle {
+    background: url("/images/blocks-pattern.png");
+    background-color: $ui-purple;
+    background-repeat: repeat;
+    background-size: 180px 180px;
+}
+
+.middle-banner-header {
+    margin-bottom: 1rem;
+    justify-content: space-between;
+    align-items: center;
+}
+
+.middle-banner-header-h1 {
+    color: $type-white;
+}
+
+.mod-ttt-try-button {
+    &:link,
+    &:visited,
+    &:active
+    &:hover {
+        color: $type-white;
+    }
+}
+
+.ttt-tile.mod-banner {
+    background-color: $background-color;
+}
+
+@media only screen and (min-width: $tablet) and (max-width: $desktop - 1) {
+    .mod-last-tile {
+        display: none;
+    }
+    
+    .middle-banner-header {
+        flex-direction: column;
+        align-items: center;
+    }
+}
+
+@media only screen and (max-width: $tablet - 1) {
+    .title-banner.mod-splash-middle {
+        display: none;
+    }
+}
diff --git a/src/views/splash/hoc/top-banner.jsx b/src/views/splash/hoc/top-banner.jsx
new file mode 100644
index 000000000..5d2dccfa6
--- /dev/null
+++ b/src/views/splash/hoc/top-banner.jsx
@@ -0,0 +1,108 @@
+var FormattedMessage = require('react-intl').FormattedMessage;
+var injectIntl = require('react-intl').injectIntl;
+var React = require('react');
+
+var FlexRow = require('../../../components/flex-row/flex-row.jsx');
+var TitleBanner = require('../../../components/title-banner/title-banner.jsx');
+var TTTModal = require('../../../components/modal/ttt/modal.jsx');
+
+require('../../../components/forms/button.scss');
+require('./top-banner.scss');
+
+var nameTile = {
+    title: 'ttt.AnimateYourNameTitle',
+    description: 'ttt.AnimateYourNameDescription',
+    thumbUrl: '/images/ttt/animate-your-name.jpg',
+    bannerUrl: '/images/ttt/animate-your-name-banner.jpg',
+    tutorialLoc: '/projects/editor/?tip_bar=name',
+    activityLoc: 'cards.nameCardsLink',
+    guideLoc: 'guides.NameGuideLink'
+};
+
+var TopBanner = injectIntl(React.createClass({
+    type: 'TopBanner',
+    getInitialState: function () {
+        // use translated tile
+        var formatMessage = this.props.intl.formatMessage;
+        var translatedTile = {};
+        translatedTile = {
+            title: formatMessage({id: nameTile.title}),
+            description: formatMessage({id: nameTile.description}),
+            tutorialLoc: nameTile.tutorialLoc,
+            activityLoc: formatMessage({id: nameTile.activityLoc}),
+            guideLoc: formatMessage({id: nameTile.guideLoc}),
+            thumbUrl: nameTile.thumbUrl,
+            bannerUrl: nameTile.bannerUrl
+        };
+        return {currentTile: translatedTile, TTTModalOpen: false};
+    },
+    showTTTModal: function () {
+        this.setState({TTTModalOpen: true});
+    },
+    hideTTTModal: function () {
+        this.setState({TTTModalOpen: false});
+    },
+    render: function () {
+        return (
+            <TitleBanner className="mod-splash-top">
+                <FlexRow className="banner-top inner">
+                    <FlexRow className="top-animation">
+                        <img
+                            src="/images/hoc/s.png"
+                            alt="C"
+                            className="top-animation-letter mod-letter-s"
+                        />
+                        <img
+                            src="/images/hoc/c1.png"
+                            alt="C"
+                            className="top-animation-letter mod-letter-c1"
+                        />
+                        <img
+                            src="/images/hoc/r.png"
+                            alt="R"
+                            className="top-animation-letter mod-letter-r"
+                        />
+                        <img
+                            src="/images/hoc/a.png"
+                            alt="A"
+                            className="top-animation-letter mod-letter-a"
+                        />
+                        <img
+                            src="/images/hoc/t.png"
+                            alt="T"
+                            className="top-animation-letter mod-letter-t"
+                        />
+                        <img
+                            src="/images/hoc/c2.png"
+                            alt="C"
+                            className="top-animation-letter mod-letter-c2"
+                        />
+                        <img
+                            src="/images/hoc/h.png"
+                            alt="H"
+                            className="top-animation-letter mod-letter-h"
+                        />
+                    </FlexRow>
+                    
+                    <div className="top-links">
+                        <a href="/projects/editor/?tip_bar=name" className="button mod-top-button">
+                            <FormattedMessage id="ttt.AnimateYourNameTitle" />
+                        </a>
+                        <div className="mod-guides-link" onClick={this.showTTTModal}>
+                            &nbsp;&nbsp;
+                            <FormattedMessage id="tile.guides" />
+                            <img className="top-open-modal" src="/svgs/modal/open-white.svg" />
+                            <TTTModal
+                                isOpen={this.state.TTTModalOpen}
+                                onRequestClose={this.hideTTTModal}
+                                {...this.state.currentTile}/>
+                        </div>
+                    </div>
+                </FlexRow>
+            </TitleBanner>
+        );
+    }
+}));
+
+module.exports = TopBanner;
+
diff --git a/src/views/splash/hoc/top-banner.scss b/src/views/splash/hoc/top-banner.scss
new file mode 100644
index 000000000..00ddcfb37
--- /dev/null
+++ b/src/views/splash/hoc/top-banner.scss
@@ -0,0 +1,227 @@
+@import "../../../colors";
+@import "../../../frameless";
+
+.title-banner.mod-splash-top {
+    background-color: $ui-aqua;
+    background-image: url("/images/hoc/splash-left.png"), url("/images/hoc/splash-right.png");
+    background-repeat: no-repeat, no-repeat;
+    background-position: left bottom, right bottom;
+    background-size: 40% auto, 40% auto;
+}
+
+.banner-top {
+    background-image: url("/images/hoc/doodads.png");
+    background-repeat: no-repeat;
+    background-position: top;
+    background-size: 70%;
+    flex-direction: column;
+}
+
+.top-banner-header {
+    justify-content: space-between;
+}
+
+.top-banner-header-h1 {
+    margin-bottom: 1.25rem;
+    color: $type-white;
+}
+
+.banner-image.mod-top {
+    width: 100%;
+}
+
+.top-animation {
+    padding-top: 2rem;
+    padding-bottom: 1rem;
+    width: 70%;
+}
+
+.top-animation-letter {
+    animation-duration: 1s;
+    animation-iteration-count: infinite;
+    animation-fill-mode: both;
+    width: 100%;
+}
+
+@keyframes jump {
+    from,
+    to {
+        transform: translate3d(0, 0, 0);
+    }
+
+    12.5%,
+    62.5% {
+        transform: translate3d(0, 10px, 0);
+    }
+
+    37.5%,
+    87.5% {
+        transform: translate3d(0, -10px, 0);
+    }
+}
+
+.mod-letter-s {
+    // width: 16.6%;
+    animation-name: jump;
+    width: 13.3%;
+}
+
+@keyframes pulse {
+    from {
+        transform: scale3d(1, 1, 1);
+    }
+
+    50% {
+        transform: scale3d(1.25, 1.25, 1.25);
+    }
+
+    to {
+        transform: scale3d(1, 1, 1);
+    }
+}
+
+.mod-letter-c1 {
+    // width: 12.5%;
+    animation-name: pulse;
+    width: 10%;
+}
+
+@keyframes spin-left {
+    90% {
+        transform: rotate3d(0, 0, 1, -360deg);
+    }
+
+    to {
+        transform: rotate3d(0, 0, 1, -360deg);
+    }
+}
+
+.mod-letter-r {
+    // width: 14%;
+    animation-name: spin-left;
+    width: 11.2%;
+}
+
+@keyframes swing {
+    25% {
+        transform: rotate3d(0, 0, 1, 40deg);
+    }
+
+    75% {
+        transform: rotate3d(0, 0, 1, -40deg);
+    }
+
+    from,
+    to {
+        transform: rotate3d(0, 0, 1, 0deg);
+    }
+}
+
+.mod-letter-a {
+    // width: 14.4%;
+    animation-name: swing;
+    width: 11.5%;
+}
+
+@keyframes shake {
+    from,
+    to {
+        transform: translate3d(0, 0, 0);
+    }
+
+    12.5%,
+    62.5% {
+        transform: translate3d(-10px, 0, 0);
+    }
+
+    37.5%,
+    87.5% {
+        transform: translate3d(10px, 0, 0);
+    }
+}
+
+.mod-letter-t {
+    // width: 15.5%;
+    animation-name: shake;
+    width: 12.4%;
+}
+
+@keyframes spin-right {
+    90% {
+        transform: rotate3d(0, 0, 1, 360deg);
+    }
+
+    to {
+        transform: rotate3d(0, 0, 1, 360deg);
+    }
+}
+
+.mod-letter-c2 {
+    // width: 12.5%;
+    animation-name: spin-right;
+    width: 10%;
+}
+
+@keyframes inverse-jump {
+    from,
+    to {
+        transform: translate3d(0, 0, 0);
+    }
+
+    12.5%,
+    62.5% {
+        transform: translate3d(0, -10px, 0);
+    }
+
+    37.5%,
+    87.5% {
+        transform: translate3d(0, 10px, 0);
+    }
+}
+
+.mod-letter-h {
+    // width: 14.4%;
+    animation-name: inverse-jump;
+    width: 11.5%;
+}
+
+.mod-top-button {
+    &:active &:hover,
+    &:link,
+    &:visited {
+        color: $type-white;
+        font-size: 1rem;
+    }
+}
+
+.mod-top-button {
+    border: 1px solid $active-gray;
+    box-shadow: none;
+    background-color: $ui-blue;
+}
+
+.top-links {
+    display: flex;
+    flex-direction: column;
+    justify-content: space-around;
+    align-items: center;
+}
+
+.mod-guides-link {
+    cursor: pointer;
+    padding: 1.25rem 0;
+    color: $ui-white;
+    font-size: 1rem;
+    font-weight: 500;
+}
+
+.top-open-modal {
+    display: inline-block;
+    padding: 0 .25rem;
+    vertical-align: top;
+}
+@media only screen and (max-width: $tablet - 1) {
+    .flex-row.top-animation {
+        flex-direction: row;
+    }
+}
diff --git a/src/views/splash/l10n-static.json b/src/views/splash/l10n-static.json
new file mode 100644
index 000000000..12fd6c5a1
--- /dev/null
+++ b/src/views/splash/l10n-static.json
@@ -0,0 +1,10 @@
+{
+    "cards.nameCardsLink": "https://resources.scratch.mit.edu/www/cards/en/nameCards.pdf",
+    "cards.flyCardsLink": "https://resources.scratch.mit.edu/www/cards/en/flyCards.pdf",
+    "cards.musicCardsLink": "https://resources.scratch.mit.edu/www/cards/en/musicCards.pdf",
+    "cards.pongCardsLink": "https://resources.scratch.mit.edu/www/cards/en/pongCards.pdf",
+    "guides.NameGuideLink": "https://resources.scratch.mit.edu/www/guides/en/NameGuide.pdf",
+    "guides.FlyGuideLink": "https://resources.scratch.mit.edu/www/guides/en/FlyGuide.pdf",
+    "guides.MusicGuideLink": "https://resources.scratch.mit.edu/www/guides/en/MusicGuide.pdf",
+    "guides.PongGuideLink": "https://resources.scratch.mit.edu/www/guides/en/PongGuide.pdf"
+}
diff --git a/src/views/splash/l10n.json b/src/views/splash/l10n.json
index b289b440e..4a87ddc13 100644
--- a/src/views/splash/l10n.json
+++ b/src/views/splash/l10n.json
@@ -28,6 +28,27 @@
     "teacherbanner.subgreeting": "Teacher Account",
     "teacherbanner.classesButton": "My Classes",
     "teacherbanner.faqButton": "Teacher Account FAQ",
+    
+    "middle-banner.header": "Get Creative with Coding",
+    "middle-banner.ttt": "See more activities",
+    "ttt.tutorial": "Tutorial",
+    "ttt.open": "Open",
+    "ttt.tutorialSubtitle": "Find out how to make this project using a step-by-step tutorial in Scratch.",
+    "ttt.activityTitle": "Activity Cards",
+    "ttt.activitySubtitle": "Explore new coding ideas using this set of illustrated cards you can print out.",
+    "ttt.educatorTitle": "Educator Guide",
+    "ttt.educatorSubtitle": "Use this educator guide to plan and lead a one-hour Scratch workshop.",
+    "tile.tryIt": "Try It",
+    "tile.guides": "See Cards and Guides",
+    "ttt.download": "Download",
+    "ttt.AnimateYourNameTitle": "Animate a Name",
+    "ttt.AnimateYourNameDescription": "Animate the letters of your username, initials, or favorite word.",
+    "ttt.MakeItFlyTitle": "Make It Fly",
+    "ttt.MakeItFlyDescription": "Animate the Scratch Cat, The Powerpuff Girls, or even a taco!",
+    "ttt.MakeMusicTitle": "Make Music",
+    "ttt.MakeMusicDescription": "Choose instruments, add sounds, and press keys to play music.",
+    "ttt.PongTitle": "Pong Game",
+    "ttt.PongDescription": "Make a bouncing ball game with sounds, points, and other effects.",
 
     "welcome.welcomeToScratch": "Welcome to Scratch!",
     "welcome.learn": "Learn how to make a project in Scratch",
diff --git a/src/views/splash/presentation.jsx b/src/views/splash/presentation.jsx
index 4504675cf..e0827551d 100644
--- a/src/views/splash/presentation.jsx
+++ b/src/views/splash/presentation.jsx
@@ -11,6 +11,8 @@ var Box = require('../../components/box/box.jsx');
 var Button = require('../../components/forms/button.jsx');
 var Carousel = require('../../components/carousel/carousel.jsx');
 var LegacyCarousel = require('../../components/carousel/legacy-carousel.jsx');
+var TopBanner = require('./hoc/top-banner.jsx');
+var MiddleBanner = require('./hoc/middle-banner.jsx');
 var Intro = require('../../components/intro/intro.jsx');
 var IframeModal = require('../../components/modal/iframe/modal.jsx');
 var News = require('../../components/news/news.jsx');
@@ -253,6 +255,7 @@ var SplashPresentation = injectIntl(React.createClass({
                 {this.props.isEducator ? [
                     <TeacherBanner key="teacherbanner" messages={messages} />
                 ] : []}
+                <TopBanner />
                 <div key="inner" className="inner mod-splash">
                     {this.props.sessionStatus === sessionActions.Status.FETCHED ? (
                         Object.keys(this.props.user).length !== 0 ? [
@@ -273,6 +276,12 @@ var SplashPresentation = injectIntl(React.createClass({
                         ]) : []
                     }
 
+                    {featured.shift()}
+                    {featured.shift()}
+                </div>
+                <MiddleBanner />
+                <div key="inner2" className="inner mod-splash">
+                    
                     {featured}
 
                     {this.props.isAdmin ? [
diff --git a/static/images/hoc/a.png b/static/images/hoc/a.png
new file mode 100644
index 0000000000000000000000000000000000000000..d0a33f66fff89b16ce8a0cecfce903b5621e696f
GIT binary patch
literal 4444
zcmV-i5u@&jP)<h;3K|Lk000e1NJLTq004pj006281^@s6Vf>e-0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU?{z*hZRCwC#U0-ZeRT@8crb7!uX>pNO
zmr5J{tuchY?20C?B_?iTNT|{DQHoeX#3;q|!Gxs6@a7_}S`$OriW?v3vKA88RbObg
zN_{X(1uC(+DHOI8q3x9Ev@;CT?)l1h@G#t&x%bY!ch0$Ue#y;Dr!#lve)o62f9IU<
zBSb+#K|w)5K|w)5K_MM95r5R&+*~DnXrRZFI{)sW$2;^W#rN<C(c>dc(?aUjN(g%6
zTjy@$Bp%sd0?${eBrB0dfE!OAY8*O!cZ%10l=cuy6Liew7EF6oD~*sF0)XJV=pmB&
zzJNy$_xJI9(HL3|NB~aW5ITFJ14z)1kAI=0=vG9qj|iX%>LisH(;A*5hUPK}z$BdZ
z&_Fs)k8NHsA3m4AuatNTpxI7Sf}c)uKs#g$U)?4`4e=h}hF2$%y#WbQt%#tHm3b7A
z0U<y$NI`zrd<4m&1t*-$ebkruNNEH@cIPPxnE7DIvmtsM#DS4t8i8Ik*vt;1kgO$+
z5J3`GnhPWV&$>(9_p}J1>3GMJM96c$zzUwFWH|0cA7Qs5fhlyL|4`{QjR2w3Np*j%
z`w&z^w0c1!C~c5kq|t&|%Lb>T45u}MlZ#IB5!;-~Mfe;fL7gIjBR)i{R2l&$UzBN(
zM>F^wB0+;9f#aItq@9ymPML<S>RvgH`G^cnuz03Hg^ccpnbb^FiKr2jgXnUYX@^$u
zDLHxqUAQW$R3sv-RQDw(00+HABqCI*dy+dcSdAoXbrwCiN?At0l=dd-K=$WSBebad
zkaK{aV0!(B&jB_nh!IIN<dO&{)IAUeElMLOFs-mVS42<|gIG9dbhgs&r~x8|Y9)W+
zkZ~=fW+Mq|h?-*%Ii##gw`AT<)9{*-x6mPFgIhj=T7Muu8C)U4HYIC$VH**s{kfpR
zN1@U03K4KlT$u+!oyAO1gPo>9g^dFH2bp$H*-3;AO5Q@F&J7~?Z``<XRmoa8i%<YU
zIf@cHi*{xf!3GT}d5eczw{Beu1Ok7cPp{D<;dJ;o8i_={P+}JkLqkJv10Pb608n7l
zcNNj&zQv0dZ@+l);!DeyFRz_{v8d=Vc$}S`y%7$FzbGy)uJ!qROW21dCnr14o;};i
zpJ@I1_4Vw1H*ek?C@3hX;6I~a9#^kky+j|T+%OHGS(Ybjn8wD&C42Yot>3?Yf9Ih?
zhi<^%&CSiV@WVd-_~QY1&B)1ndwU;a&sVQr{WyD0$#n_NRaRD3QB_s72S~$IAtl+D
zR6|`_v0}yR`A(#-zyA99C!Tl$ij7})+()2TL~@)^0>UH{tgWrBV)N$Be_F6$K?x&I
zVPWBt^78U}`r0FTM1(%{5#ml0VHrIZNasrT_t&mlx9%lo#=M9RKKNkcu3fvpJV0bO
z?IaNb^tfMUVSzRoA0MCBBvgYO^NKkE|IF|AKg`@RdPJNgf}b8`UKv3rPMmn;si&UW
zLqo0#+06$;a^S=>ztQRNG2taux@F6j0T3SbC7%B2r=OZ&RLOcRBO@bU;?tYy?vvlf
z?+n-&jtYbK-g|H0%9SgBTe@^<H~n*<q@-k%EWaJ1CmPB(af5Z*ji>=~3B^bVBN}8H
zSqh(9NF>>rJvca6ziQR0eKPnEpv~5<UE7(-KOi;>KZ@bWC_Ya`fDqcMFg;@U1K~4c
z_*xiAGAp8RL9jb_?tFA~bo6b}iGYcu1j;*-?!8VG(*lD121k4tM?HMkjL92Zg!u_Z
z*cisa348?8R*3Imn8E*-;^z`bwkV#j)UE*lS=5IfdT5`hM9?(tw;T~jE{Grkz(fV<
zaU+R*ek4vI`ZQUQVs38ke=<i43<Vx0LY(NYp-gZlh-t4N5@#9-5|sVoPoF;Bj!#2I
zqB<{Y1gj`Svt|fWQ&We7!C<XO7Z8m``xY)-_&g4VYesFk!rh3O@neo0InpZH1$_0@
zS1p`*EHva#$aIHrTipd*I`1U>7z)pE5zJDOVlG7_tpHQ^kO;#+XVEl7GkvZ=fSX%M
zZnyb?NASR5NmUJc_bWL&-+-^dXS(tI@HZ^eKEk@P;`u^Zw#G^5_!rmFcPLKQq>#N^
zvt~`LVB;o&e$cF_qq;7sVWwSxDx_Up6V3*QE&)Q&2l=D7xA(a@fq=iO#B99pCJA8V
zLwz47_CSCZVN14I&&87tbVFf@voPjKgaV|MIl_uV1h^4c403{G*pcfHIfl44dv<+)
zoDV@^d7UUkfR$PJG%Sh<fZa8%sHR231ey`3OIVYI*6@A!;fKE$<)T8N&`~rCrJ|5P
zR05<!tHo<QD8i4A#bW0;zs2<0kOCWTKG^3isE#X%e1QH*TQPE(4^LSnk^yxh{P@w)
z(axms*L@<OYV|^sPZr9u>w1Thp((?43qktf;o*U7KCjtCgf3A=h66~>S@f_rIwIAL
z!kI?inZ0J_^V!b4RbnMIuabaprjFGi>c9x3Riq!u?fn1}jJc)}umJZ-qKadPkw*M=
z+8Hv6lcvKTMFMXi91j10PXksyuUR00YWyu2aJTbDay#n@+Q9Ux@&XGaP?|tIB3wq_
zVBG3C%$f#poK&qOF%ckHY)>#tgeR4}g+*4=&4!796E?e*yv0K-7Q2KYW5Q7)pl{Hj
zL@pj+MN)HfGb~Lj%H}+pK_b);Re4=VeE<FT+pDXqS;->M3Na^5gNhQw%^&c|BgdUZ
z6)6ac;^JbqBrWYGSG$Oyy1NRB6)RS-Iflt>&SR7abxPzy1GGWZQ6ga2sC)!LarEfX
zcJvMWPHTj%O5Eb2zrUZEgd)d?fXmNol(@yk3opFDYCO$2LIgAk4PFoyRCt9FbFhkM
z$BrEjLy-%piv*iRWv-6|ICJI<n{aYwM-#5XkqYs6e3+`r7fI4iq;yAPW8?3prl$S{
zpP!kTIh9BxCS|$aq?OBAtv1tAkO0hq@R>xIhyV85Z=0~HsGWAVcK!PG2Su-w#BF~E
zSk5Y@GY!J~1)$Pje);96?Ir;LQnqK$o^29c22d>)>RaQVaX0b^!r`;eK6~D1QE#hc
zfEvc&UvT>gg~OX~zS&4@C_a|TG_(?vZRg!K3Ai-NH9$4iXP$ZHFslGBl4kV#{UzC+
zM@o&rZS-^vP>uET&p+QTnk=Xv^B-Hzlj3z@=N4f8ec7^QInh=?1{vxr+Cl`37=+Cq
zw70jL8I`GK<Sg6N2OfCffES6N=@8+hs8Pe%*jT$sZNTaWL6x)sM*?`=a-$K!YAZrb
zsj9s45ze1KpRRcrEai^qXoFddvEl!d<k#9r@V^mqyBMY6&<mVK!NgLDT0ARARd6#!
z&VUurjN&nc1m|z=EXiCS+EC*W8deI|>4o|&<#|N}9q<)Y`5S9?HE$d>LlLJXgUK2b
zGLFzJOtkQk`Yr!-!ZZlGERD;eF+^-UeS-X2k}izq<R-org#z3gHf%U7TH2Ws;fx(}
z(2|^>N+NJKSL{E~foeYH*7w44ek$;bg3diaP06KpYlINdFJvtQii?XY(8-Ir{MFS0
zPe7I8?sWTzfYnO33GNrfbMT#&A`2uEiR>T_O+(L#c)?UX|J(2PySo39+W{{0l71RF
ztfo%mf9-S@h3!>9)$<=6EUhao2>|8g<$tz2Y6u8^%`GmGpbi~pSvL2S+D(M8;1_I5
zCM}&7z$$TFB#)Ny-$R6R=g!G+@lNi{22&v8hMr10iLhv5VxmTdi^fv_yU~tks|6~t
zl&(ysKu;!?Ws#g>mZ{r&H6E~bqRAow!0~*IcxRI@XtIy&AVRdPtgJ$^i{FjWF3c>J
zq$`=rMnAc|-eN0}vu1QUY_&=Ry*$FQSS;2pahLRNdYnL^fU3NJ$3=Q<Al~25yUAcN
z@r*?9_4W1DZQQu=A4EY$Kz6vwY)`9HrE|&>iNv4`jj$DTahww2*=+L&@R}bMi7I(Y
z3)9Z8R4HZ!Q=w#awnSK@<md@>naL~Y5n+C=KN5*3(;&H4FcTr^5n;ZU;WyuW(<yuH
z0EPJ;Th_xzdd#nig{9k@H*Y?sq6c|FqX*5ZMu4T?^L2S(i`S`Br(RUzlov1`lT980
z0PW^shY*>WnK=e~@s(Jm#WvQE%#220C{ptC3^G>6OGShLpHILt@CqJADk8vUk2|Y{
zdwP1>m8hgfbtYdy%RrJlyNIE$Aaq49DJiK}a+Ma{)K}PKmI#at_YrQv%GA`<;b1UW
zt7IxIblV(f+7tny<XyXp#>U3_lq}^o6K10ZUF_e#U+5}h3K>yp#WVnxk)*YZvJ|9L
zNZ}ajWE+iWgnMczKn=p3J9j<`{fL!VJwgrx?<vHbf^LEdv;)))P@<Fy_pEC)q7lGZ
zg!)5cM5huNXa}eXobQqa84M2(x5z3BGtMFq;+oz+e*E#ryiPd5vOXw|y>jKs_E%qh
z^+g${@6ARHx^)X#-Qs**zi|Hi`8!28p+594zx*Qlz_6tl3it~tdmmi6a^-+bJrA-0
z^mk}$YkO2r7NJn+sHndg{l2VGNDMT?xPJZmA+Hl5U6T-yfrta5x3~8>JxicjAOds~
zD>L#&udZW&gc?0Ab4@dJLAB%S<>lpjL~>~HH-oPi&nmM>Ow=$0#|eA~)<a3=n-9Mq
zs=7f>C}<Ioi39+s+YJ34gmDZ)Ar{f_C5f{F<P?fA>u9)l5||5F{RdR34_Z0EkATmE
zeHP>z%9Dwp*+jPcjWP_1X1?{-Tl-{~&IT<2H}B`4fBrkyk=-%|2M6odtXXp~SLO_x
zoy7HWLUtA9He7`b!mHBK(k4j0@a7`drh}hIgS-Hk0Z5}SUc7j_K@vdqQz-JCvPUx=
z0AGNqaQj-pHy9ZiX-{{r?9vGLOiUTo4$#07dKd26wd)f6O&=eJ#@E4MaDH1pOl;Y`
zMIUa&#KgqB?Jg)NSn|mypS%s<&nmCO>TMIJi(_2QJ6~yA0Kj!NH#gT-RaNbAvNaG8
z`juB+(d&H$+F*ikOAPEH0$lhK;$Yc->gXI~<^)DBFF?3pJ+iQLFRZzwBXR!b()X2o
z`st^gaN}+IX^?)`tNi|;k%933`|lsKo9J-euv6`gH{LjqrUBYCpIFjt{C+>?817p5
zYA2|(x$pAj%YC4#VX|x8x^*vo_uY2~pnN~mF6_Ndv;j<(H)?@!HhvTQ?!9~W)>92w
z!L(pDA-9R<CU=F9nnOY=CEngl8z(8|T{x6j9T4DDu3EKfAHUusSqt(2e~TUi1_wYC
z{h62(K0-2lI2z&@W_oR_{j`C6eE{QiOXiZ-a7^R9`|i7c1#JQAK*Hhh4>Sr`GCn>&
zuy*ZQqq&NE5=l-I!BQqtV1)5HV3E!(98pG#gBRjpu%%*MTU%R&MgJy}E~3#~5~M#V
zBN;&R5s-ic@Vl?taGoHVi(CPAxnECrgWSNJPWUp-jTrWtCLj@_By~S1vwlSaO@)@D
zYmMYuBZxR+W>GMOI%=CW42u!-{h=Jqy=0*c!X!<@6Oo8;r!Ip-&RqgEAd6-~oK|A5
zv+i(Fl4a9vgXR*5U*s^^!^A+(C(%@KF^*8pM*kt%!-w-PB;vFz0`e{AqKmkV*FHuJ
zwmlNjCi4PXz!8Jl=^{>jFT#<<`Z@;ibCWjNbvFmVA|z)Fqb$Eg4G`f7WmpCpksn29
z17{_^1|N4LnbumGCI>N%p{$=HOcaS^Ne*5hf>+@~6UJ)|Uy^UbLh*#;13|&0bE&G>
iC@3f>D7c0H3orl!NT}h?Y5`dQ0000<MNUMnLSTY0c|BSH

literal 0
HcmV?d00001

diff --git a/static/images/hoc/c1.png b/static/images/hoc/c1.png
new file mode 100644
index 0000000000000000000000000000000000000000..fdbefd662b32f38b37ea55b5ea57c1de781cfb0f
GIT binary patch
literal 3015
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
JPDHLkV1gS?vAO^N

literal 0
HcmV?d00001

diff --git a/static/images/hoc/c2.png b/static/images/hoc/c2.png
new file mode 100644
index 0000000000000000000000000000000000000000..23d10fd80424c87ce6ccce95ba48eaa01c8eac90
GIT binary patch
literal 3027
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
VnP$~wZHoW^002ovPDHLkV1kTlt{VUV

literal 0
HcmV?d00001

diff --git a/static/images/hoc/doodads.png b/static/images/hoc/doodads.png
new file mode 100644
index 0000000000000000000000000000000000000000..be7be7733b940ece195aa2c85cf973ef73525748
GIT binary patch
literal 12323
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
UT)1ElWQUX#)c+}YWb*d^0J|sF0{{R3

literal 0
HcmV?d00001

diff --git a/static/images/hoc/h.png b/static/images/hoc/h.png
new file mode 100644
index 0000000000000000000000000000000000000000..886a47bc35311646b11a69a733a03fa846c3047b
GIT binary patch
literal 4791
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
Rm!bdw002ovPDHLkV1kK>tmXg!

literal 0
HcmV?d00001

diff --git a/static/images/hoc/r.png b/static/images/hoc/r.png
new file mode 100644
index 0000000000000000000000000000000000000000..e7579f99f675665d14b2975208374aba5296d487
GIT binary patch
literal 3000
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

literal 0
HcmV?d00001

diff --git a/static/images/hoc/s.png b/static/images/hoc/s.png
new file mode 100644
index 0000000000000000000000000000000000000000..1f19af45acd549d981dc5e6eb029d911fd840b3b
GIT binary patch
literal 5374
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

literal 0
HcmV?d00001

diff --git a/static/images/hoc/splash-left.png b/static/images/hoc/splash-left.png
new file mode 100644
index 0000000000000000000000000000000000000000..0c637c13f5bfad7a7ec44a8cc31c128caf721cfd
GIT binary patch
literal 11683
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
L(fQJIwh#UfHY`$S

literal 0
HcmV?d00001

diff --git a/static/images/hoc/splash-right.png b/static/images/hoc/splash-right.png
new file mode 100644
index 0000000000000000000000000000000000000000..70f3f57bce6095196ee478000b2cadc2fa65cda7
GIT binary patch
literal 8649
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
Qh!DcdeZ5=Js%^>t2jyo(%m4rY

literal 0
HcmV?d00001

diff --git a/static/images/hoc/t.png b/static/images/hoc/t.png
new file mode 100644
index 0000000000000000000000000000000000000000..1589eade14efdf5fd01555e750edc808968ca0bd
GIT binary patch
literal 4002
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
IM6N<$g12sI=l}o!

literal 0
HcmV?d00001

diff --git a/static/svgs/modal/open-blue.svg b/static/svgs/modal/open-blue.svg
new file mode 100644
index 000000000..96b6da932
--- /dev/null
+++ b/static/svgs/modal/open-blue.svg
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 43.2 (39069) - http://www.bohemiancoding.com/sketch -->
+    <title>open-blue</title>
+    <desc>Created with Sketch.</desc>
+    <defs></defs>
+    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="open-blue" fill="#4C97FF">
+            <path d="M16.904265,9.16353035 L15.4298099,7.69520276 L10.2383662,11.6050888 C9.64794591,12.057779 8.79050666,11.9379804 8.33625534,11.3315664 C7.9692373,10.844951 7.97668404,10.1706865 8.33625534,9.70951497 L12.2606889,4.53591307 L10.8213398,3.10151073 C10.4107052,2.6922873 10.7011281,2.00848131 11.2670806,2.00848131 L17.3585163,2 C17.709577,2.00848131 18,2.29896634 18,2.64033925 L18,8.71932149 C18,9.28332892 17.3063891,9.56427246 16.904265,9.16353035 Z M15.3807332,18 L3.03722491,18 C2.46488952,18 2,17.5367082 2,16.9652796 L2,4.66419295 C2,4.09382454 2.46488952,3.62947257 3.03722491,3.62947257 L7.82335296,3.62947257 C8.39781598,3.62947257 8.86164168,4.09382454 8.86164168,4.66419295 C8.86164168,5.23562152 8.39781598,5.69891333 7.82335296,5.69891333 L4.07657745,5.69891333 L4.07657745,15.9305592 L14.3424445,15.9305592 L14.3424445,13.2101776 C14.3424445,12.638749 14.807334,12.1754572 15.3807332,12.1754572 C15.9541324,12.1754572 16.4200857,12.638749 16.4200857,13.2101776 L16.4200857,16.9652796 C16.4200857,17.5367082 15.9541324,18 15.3807332,18 Z" id="open-white"></path>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/static/svgs/modal/open-white.svg b/static/svgs/modal/open-white.svg
new file mode 100644
index 000000000..e916103ff
--- /dev/null
+++ b/static/svgs/modal/open-white.svg
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 43.2 (39069) - http://www.bohemiancoding.com/sketch -->
+    <title>open-modal-icon</title>
+    <desc>Created with Sketch.</desc>
+    <defs></defs>
+    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="open-modal-icon" fill="#FFFFFF">
+            <path d="M16.904265,9.16353035 L15.4298099,7.69520276 L10.2383662,11.6050888 C9.64794591,12.057779 8.79050666,11.9379804 8.33625534,11.3315664 C7.9692373,10.844951 7.97668404,10.1706865 8.33625534,9.70951497 L12.2606889,4.53591307 L10.8213398,3.10151073 C10.4107052,2.6922873 10.7011281,2.00848131 11.2670806,2.00848131 L17.3585163,2 C17.709577,2.00848131 18,2.29896634 18,2.64033925 L18,8.71932149 C18,9.28332892 17.3063891,9.56427246 16.904265,9.16353035 Z M15.3807332,18 L3.03722491,18 C2.46488952,18 2,17.5367082 2,16.9652796 L2,4.66419295 C2,4.09382454 2.46488952,3.62947257 3.03722491,3.62947257 L7.82335296,3.62947257 C8.39781598,3.62947257 8.86164168,4.09382454 8.86164168,4.66419295 C8.86164168,5.23562152 8.39781598,5.69891333 7.82335296,5.69891333 L4.07657745,5.69891333 L4.07657745,15.9305592 L14.3424445,15.9305592 L14.3424445,13.2101776 C14.3424445,12.638749 14.807334,12.1754572 15.3807332,12.1754572 C15.9541324,12.1754572 16.4200857,12.638749 16.4200857,13.2101776 L16.4200857,16.9652796 C16.4200857,17.5367082 15.9541324,18 15.3807332,18 Z"></path>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/static/svgs/ttt/see-more.svg b/static/svgs/ttt/see-more.svg
deleted file mode 100644
index ff6505931..000000000
--- a/static/svgs/ttt/see-more.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 width="16px" height="16px" viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
-<style type="text/css">
-	.st0{opacity:0.2;fill:#4C97FF;stroke:#4C97FF;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
-	.st1{fill:none;stroke:#4C97FF;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
-	.st2{fill:#4C97FF;}
-</style>
-<path class="st0" d="M13,11H6c-0.6,0-1-0.4-1-1V3c0-0.6,0.4-1,1-1h7c0.6,0,1,0.4,1,1v7C14,10.6,13.6,11,13,11z"/>
-<path class="st1" d="M9,13c0,0.6-0.4,1-1,1H3c-0.6,0-1-0.4-1-1V8c0-0.6,0.4-1,1-1"/>
-<path class="st1" d="M13,11H6c-0.6,0-1-0.4-1-1V3c0-0.6,0.4-1,1-1h7c0.6,0,1,0.4,1,1v7C14,10.6,13.6,11,13,11z"/>
-<g>
-	<path class="st2" d="M12,4.2v2.4c0,0.2-0.3,0.3-0.4,0.2L10.8,6l-3,2.7c-0.1,0.1-0.3,0.1-0.4,0c-0.1-0.1-0.1-0.3,0-0.4L10,5.2
-		L9.2,4.4C9,4.3,9.1,4,9.4,4h2.4C11.9,4,12,4.1,12,4.2z"/>
-</g>
-</svg>

From 60a2a51bb5494e4e66f5d26cb144273f56a3555f Mon Sep 17 00:00:00 2001
From: chrisgarrity <chrisg@media.mit.edu>
Date: Wed, 8 Nov 2017 09:04:33 -0500
Subject: [PATCH 2/3] minor formatting changes for consistency

---
 src/components/ttt-tile/ttt-tile.scss |  6 +++---
 src/views/splash/hoc/top-banner.jsx   | 14 +++++++-------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/components/ttt-tile/ttt-tile.scss b/src/components/ttt-tile/ttt-tile.scss
index 2078777da..71bb685aa 100644
--- a/src/components/ttt-tile/ttt-tile.scss
+++ b/src/components/ttt-tile/ttt-tile.scss
@@ -113,7 +113,7 @@
 .ttt-tile-open-modal {
     display: inline-block;
     padding: 0 .25rem;
-    width: 1.25em;
-    height: 1.25em;
-    vertical-align: top;
+    width: 1rem;
+    height: 1rem;
+    vertical-align: text-bottom;
 }
diff --git a/src/views/splash/hoc/top-banner.jsx b/src/views/splash/hoc/top-banner.jsx
index 5d2dccfa6..3c55076a2 100644
--- a/src/views/splash/hoc/top-banner.jsx
+++ b/src/views/splash/hoc/top-banner.jsx
@@ -49,37 +49,37 @@ var TopBanner = injectIntl(React.createClass({
                     <FlexRow className="top-animation">
                         <img
                             src="/images/hoc/s.png"
-                            alt="C"
+                            alt=""
                             className="top-animation-letter mod-letter-s"
                         />
                         <img
                             src="/images/hoc/c1.png"
-                            alt="C"
+                            alt=""
                             className="top-animation-letter mod-letter-c1"
                         />
                         <img
                             src="/images/hoc/r.png"
-                            alt="R"
+                            alt=""
                             className="top-animation-letter mod-letter-r"
                         />
                         <img
                             src="/images/hoc/a.png"
-                            alt="A"
+                            alt=""
                             className="top-animation-letter mod-letter-a"
                         />
                         <img
                             src="/images/hoc/t.png"
-                            alt="T"
+                            alt=""
                             className="top-animation-letter mod-letter-t"
                         />
                         <img
                             src="/images/hoc/c2.png"
-                            alt="C"
+                            alt=""
                             className="top-animation-letter mod-letter-c2"
                         />
                         <img
                             src="/images/hoc/h.png"
-                            alt="H"
+                            alt=""
                             className="top-animation-letter mod-letter-h"
                         />
                     </FlexRow>

From 048d5c1383e6781e4ab0e145be6b0afbd8dd8af4 Mon Sep 17 00:00:00 2001
From: chrisgarrity <chrisg@media.mit.edu>
Date: Wed, 8 Nov 2017 16:50:14 -0500
Subject: [PATCH 3/3] Switch CTA button based on logged in state
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Invite logged-out users to ‘Get Started with Coding!’, and make the whole Scratch animation clickable (goes to the Animate a Name tutorial).

See #1664
---
 src/views/splash/hoc/middle-banner.jsx |  4 +-
 src/views/splash/hoc/top-banner.jsx    | 85 ++++++++++++++------------
 src/views/splash/hoc/top-banner.scss   |  1 +
 src/views/splash/l10n.json             |  5 +-
 src/views/splash/presentation.jsx      |  3 +-
 5 files changed, 54 insertions(+), 44 deletions(-)

diff --git a/src/views/splash/hoc/middle-banner.jsx b/src/views/splash/hoc/middle-banner.jsx
index 31ce74fd1..718220075 100644
--- a/src/views/splash/hoc/middle-banner.jsx
+++ b/src/views/splash/hoc/middle-banner.jsx
@@ -90,10 +90,10 @@ var MiddleBanner = injectIntl(React.createClass({
                 <div className="middle-banner inner">
                     <FlexRow className="middle-banner-header">
                         <h1 className="middle-banner-header-h1">
-                            <FormattedMessage id="middle-banner.header" />
+                            <FormattedMessage id="middleBanner.header" />
                         </h1>
                         <a href="/tips" className="button mod-ttt-try-button">
-                            <FormattedMessage id="middle-banner.ttt" />
+                            <FormattedMessage id="middleBanner.ttt" />
                         </a>
                     </FlexRow>
                     <MediaQuery minWidth={frameless.tablet}>
diff --git a/src/views/splash/hoc/top-banner.jsx b/src/views/splash/hoc/top-banner.jsx
index 3c55076a2..c82ce4b4f 100644
--- a/src/views/splash/hoc/top-banner.jsx
+++ b/src/views/splash/hoc/top-banner.jsx
@@ -21,6 +21,9 @@ var nameTile = {
 
 var TopBanner = injectIntl(React.createClass({
     type: 'TopBanner',
+    propTypes: {
+        loggedIn: React.PropTypes.bool.isRequired
+    },
     getInitialState: function () {
         // use translated tile
         var formatMessage = this.props.intl.formatMessage;
@@ -46,47 +49,51 @@ var TopBanner = injectIntl(React.createClass({
         return (
             <TitleBanner className="mod-splash-top">
                 <FlexRow className="banner-top inner">
-                    <FlexRow className="top-animation">
-                        <img
-                            src="/images/hoc/s.png"
-                            alt=""
-                            className="top-animation-letter mod-letter-s"
-                        />
-                        <img
-                            src="/images/hoc/c1.png"
-                            alt=""
-                            className="top-animation-letter mod-letter-c1"
-                        />
-                        <img
-                            src="/images/hoc/r.png"
-                            alt=""
-                            className="top-animation-letter mod-letter-r"
-                        />
-                        <img
-                            src="/images/hoc/a.png"
-                            alt=""
-                            className="top-animation-letter mod-letter-a"
-                        />
-                        <img
-                            src="/images/hoc/t.png"
-                            alt=""
-                            className="top-animation-letter mod-letter-t"
-                        />
-                        <img
-                            src="/images/hoc/c2.png"
-                            alt=""
-                            className="top-animation-letter mod-letter-c2"
-                        />
-                        <img
-                            src="/images/hoc/h.png"
-                            alt=""
-                            className="top-animation-letter mod-letter-h"
-                        />
-                    </FlexRow>
-                    
+                    <a href="/projects/editor/?tip_bar=name">
+                        <FlexRow className="top-animation">
+                            <img
+                                src="/images/hoc/s.png"
+                                alt=""
+                                className="top-animation-letter mod-letter-s"
+                            />
+                            <img
+                                src="/images/hoc/c1.png"
+                                alt=""
+                                className="top-animation-letter mod-letter-c1"
+                            />
+                            <img
+                                src="/images/hoc/r.png"
+                                alt=""
+                                className="top-animation-letter mod-letter-r"
+                            />
+                            <img
+                                src="/images/hoc/a.png"
+                                alt=""
+                                className="top-animation-letter mod-letter-a"
+                            />
+                            <img
+                                src="/images/hoc/t.png"
+                                alt=""
+                                className="top-animation-letter mod-letter-t"
+                            />
+                            <img
+                                src="/images/hoc/c2.png"
+                                alt=""
+                                className="top-animation-letter mod-letter-c2"
+                            />
+                            <img
+                                src="/images/hoc/h.png"
+                                alt=""
+                                className="top-animation-letter mod-letter-h"
+                            />
+                        </FlexRow>
+                    </a>
                     <div className="top-links">
                         <a href="/projects/editor/?tip_bar=name" className="button mod-top-button">
-                            <FormattedMessage id="ttt.AnimateYourNameTitle" />
+                            { this.props.loggedIn ?
+                                <FormattedMessage id="ttt.AnimateYourNameTitle" /> :
+                                <FormattedMessage id="topBanner.getStarted" />
+                            }
                         </a>
                         <div className="mod-guides-link" onClick={this.showTTTModal}>
                             &nbsp;&nbsp;
diff --git a/src/views/splash/hoc/top-banner.scss b/src/views/splash/hoc/top-banner.scss
index 00ddcfb37..9df878291 100644
--- a/src/views/splash/hoc/top-banner.scss
+++ b/src/views/splash/hoc/top-banner.scss
@@ -31,6 +31,7 @@
 }
 
 .top-animation {
+    margin: auto;
     padding-top: 2rem;
     padding-bottom: 1rem;
     width: 70%;
diff --git a/src/views/splash/l10n.json b/src/views/splash/l10n.json
index 4a87ddc13..6956d38b0 100644
--- a/src/views/splash/l10n.json
+++ b/src/views/splash/l10n.json
@@ -29,8 +29,9 @@
     "teacherbanner.classesButton": "My Classes",
     "teacherbanner.faqButton": "Teacher Account FAQ",
     
-    "middle-banner.header": "Get Creative with Coding",
-    "middle-banner.ttt": "See more activities",
+    "middleBanner.header": "Get Creative with Coding",
+    "middleBanner.ttt": "See more activities",
+    "topBanner.getStarted": "Get Started with Coding!",
     "ttt.tutorial": "Tutorial",
     "ttt.open": "Open",
     "ttt.tutorialSubtitle": "Find out how to make this project using a step-by-step tutorial in Scratch.",
diff --git a/src/views/splash/presentation.jsx b/src/views/splash/presentation.jsx
index e0827551d..8e699bc6c 100644
--- a/src/views/splash/presentation.jsx
+++ b/src/views/splash/presentation.jsx
@@ -255,7 +255,8 @@ var SplashPresentation = injectIntl(React.createClass({
                 {this.props.isEducator ? [
                     <TeacherBanner key="teacherbanner" messages={messages} />
                 ] : []}
-                <TopBanner />
+                <TopBanner loggedIn={this.props.sessionStatus === sessionActions.Status.FETCHED
+                    && Object.keys(this.props.user).length !== 0}/>
                 <div key="inner" className="inner mod-splash">
                     {this.props.sessionStatus === sessionActions.Status.FETCHED ? (
                         Object.keys(this.props.user).length !== 0 ? [