diff --git a/app/assets/images/pages/base/background.jpg b/app/assets/images/pages/base/background.jpg new file mode 100644 index 000000000..c924faf89 Binary files /dev/null and b/app/assets/images/pages/base/background.jpg differ diff --git a/app/assets/images/pages/base/background_texture.png b/app/assets/images/pages/base/background_texture.png deleted file mode 100644 index 6521dea8b..000000000 Binary files a/app/assets/images/pages/base/background_texture.png and /dev/null differ diff --git a/app/assets/images/pages/base/logo.png b/app/assets/images/pages/base/logo.png index 0972de488..e7a97eb3c 100644 Binary files a/app/assets/images/pages/base/logo.png and b/app/assets/images/pages/base/logo.png differ diff --git a/app/assets/images/pages/base/nav_background.png b/app/assets/images/pages/base/nav_background.png new file mode 100644 index 000000000..d9df28f57 Binary files /dev/null and b/app/assets/images/pages/base/nav_background.png differ diff --git a/app/assets/images/pages/base/repeat-tile.png b/app/assets/images/pages/base/repeat-tile.png deleted file mode 100644 index 16186dbee..000000000 Binary files a/app/assets/images/pages/base/repeat-tile.png and /dev/null differ diff --git a/app/assets/images/pages/base/sky_repeater.png b/app/assets/images/pages/base/sky_repeater.png deleted file mode 100644 index 824fb83f8..000000000 Binary files a/app/assets/images/pages/base/sky_repeater.png and /dev/null differ diff --git a/app/assets/images/pages/home/app_store_badge.svg b/app/assets/images/pages/home/app_store_badge.svg new file mode 100644 index 000000000..0fe477c56 --- /dev/null +++ b/app/assets/images/pages/home/app_store_badge.svg @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/assets/images/pages/home/campaign.jpg b/app/assets/images/pages/home/campaign.jpg deleted file mode 100755 index df135c9a4..000000000 Binary files a/app/assets/images/pages/home/campaign.jpg and /dev/null differ diff --git a/app/assets/images/pages/home/campaign_notext.jpg b/app/assets/images/pages/home/campaign_notext.jpg deleted file mode 100644 index fa7d3c37f..000000000 Binary files a/app/assets/images/pages/home/campaign_notext.jpg and /dev/null differ diff --git a/app/assets/images/pages/home/front_screenshot_01.png b/app/assets/images/pages/home/front_screenshot_01.png deleted file mode 100644 index 86bdfd01e..000000000 Binary files a/app/assets/images/pages/home/front_screenshot_01.png and /dev/null differ diff --git a/app/assets/images/pages/home/language_background_small.png b/app/assets/images/pages/home/language_background_small.png deleted file mode 100644 index 32063a954..000000000 Binary files a/app/assets/images/pages/home/language_background_small.png and /dev/null differ diff --git a/app/assets/images/pages/home/language_beta_sticker.png b/app/assets/images/pages/home/language_beta_sticker.png deleted file mode 100644 index fb24c3d12..000000000 Binary files a/app/assets/images/pages/home/language_beta_sticker.png and /dev/null differ diff --git a/app/assets/images/pages/home/language_js.png b/app/assets/images/pages/home/language_js.png deleted file mode 100644 index 9da73cf33..000000000 Binary files a/app/assets/images/pages/home/language_js.png and /dev/null differ diff --git a/app/assets/images/pages/home/language_python.png b/app/assets/images/pages/home/language_python.png deleted file mode 100644 index 71f23d4ad..000000000 Binary files a/app/assets/images/pages/home/language_python.png and /dev/null differ diff --git a/app/assets/images/pages/home/multiplayer.jpg b/app/assets/images/pages/home/multiplayer.jpg deleted file mode 100755 index 38590f3fa..000000000 Binary files a/app/assets/images/pages/home/multiplayer.jpg and /dev/null differ diff --git a/app/assets/images/pages/home/play_button.png b/app/assets/images/pages/home/play_button.png new file mode 100644 index 000000000..7d4c74966 Binary files /dev/null and b/app/assets/images/pages/home/play_button.png differ diff --git a/app/assets/images/pages/home/play_img.png b/app/assets/images/pages/home/play_img.png deleted file mode 100644 index ffdad8dca..000000000 Binary files a/app/assets/images/pages/home/play_img.png and /dev/null differ diff --git a/app/assets/images/pages/home/video_border.png b/app/assets/images/pages/home/video_border.png deleted file mode 100644 index b07b2f2eb..000000000 Binary files a/app/assets/images/pages/home/video_border.png and /dev/null differ diff --git a/app/assets/images/pages/home/wizard.png b/app/assets/images/pages/home/wizard.png deleted file mode 100644 index f31990f6a..000000000 Binary files a/app/assets/images/pages/home/wizard.png and /dev/null differ diff --git a/app/assets/images/pages/home/multiplayer_notext.jpg b/app/assets/images/pages/play/ladder/multiplayer_notext.jpg similarity index 100% rename from app/assets/images/pages/home/multiplayer_notext.jpg rename to app/assets/images/pages/play/ladder/multiplayer_notext.jpg diff --git a/app/assets/main.html b/app/assets/main.html index 24b1c18f2..2b468e27f 100644 --- a/app/assets/main.html +++ b/app/assets/main.html @@ -43,8 +43,6 @@
-
-
diff --git a/app/locale/en.coffee b/app/locale/en.coffee index d18e02d86..92615b86b 100644 --- a/app/locale/en.coffee +++ b/app/locale/en.coffee @@ -10,6 +10,7 @@ for_beginners: "For Beginners" multiplayer: "Multiplayer" # Not currently shown on home page for_developers: "For Developers" # Not currently shown on home page. + or_ipad: "Or download for iPad" nav: play: "Levels" # The top nav bar entry where players choose which levels to play diff --git a/app/styles/bootstrap/_variables.scss b/app/styles/bootstrap/_variables.scss index edb181e32..e2b5af123 100644 --- a/app/styles/bootstrap/_variables.scss +++ b/app/styles/bootstrap/_variables.scss @@ -44,7 +44,7 @@ $brand-info: $blueDark !default; // Scaffolding // ------------------------- -$body-bg: #2f261d; +$body-bg: rgb(70,58,44); $text-color: $gray !default; // Links diff --git a/app/styles/base.sass b/app/styles/common/common.sass similarity index 79% rename from app/styles/base.sass rename to app/styles/common/common.sass index 451e9bdca..9c70cd67f 100644 --- a/app/styles/base.sass +++ b/app/styles/common/common.sass @@ -1,9 +1,6 @@ @import "app/styles/bootstrap/variables" @import "app/styles/mixins" -html - background-color: #2f261d - body position: absolute !important @@ -14,89 +11,9 @@ body h1, h2, h3, h4, h5, h6 font-variant: small-caps -.main-content-area - box-shadow: 0px 0px 10px - position: relative - width: 1024px - margin: 56px auto 0 - min-height: 600px - padding: 14px 12px 5px 12px - +box-sizing(border-box) - +clearfix() - -#outer-content-wrapper - background: #B4B4B4 - -#outer-content-wrapper.show-background - background: #8cc63f url(/images/pages/base/repeat-tile.png) top center - - #intermediate-content-wrapper - background: url(/images/pages/base/sky_repeater.png) repeat-x - - #inner-content-wrapper - background: url(/images/pages/base/background_texture.png) top center no-repeat - -#front-summary-points-left - width: 250px - margin: 0px 20px 10px 15px - -#front-summary-points-left p.lead - margin-bottom: 5px - -#front-screenshot - width: 710px - -.content - width: 1024px - margin: 0 auto - -.footer - border-top: 1px solid black - background-color: #2f261d - p - margin: 0 - padding-top: 10px - padding-bottom: 10px - text-align: center - - .mixpanel-badge, .firebase-badge - width: 100px - margin: 10px 10px 0px - -.footer-link-text a - font-family: 'Open Sans Condensed', cursive - font-variant: small-caps - font-weight: normal - font-size: 25px - letter-spacing: 1px - color: #ffffff - cursor: pointer - margin: 0px 10px - &:hover - color: $white - a cursor: pointer -.share-buttons, .partner-badges - padding-bottom: 10px - text-align: center - @include opacity(0.75) - - &.fade-in - @include opacity(0) - - &:hover, &:active - @include opacity(1) - @include transition(opacity .10s linear) - - .github-star-button - margin-left: 20px - - &>div - display: inline-block - vertical-align: top - .error left: 8px diff --git a/app/styles/common/site-chrome.sass b/app/styles/common/site-chrome.sass new file mode 100644 index 000000000..f1c7166ea --- /dev/null +++ b/app/styles/common/site-chrome.sass @@ -0,0 +1,222 @@ +@import "app/styles/bootstrap/variables" +@import "app/styles/mixins" + +.site-chrome + background-color: white + &.show-background + background: url(/images/pages/base/background.jpg) top center no-repeat + background-color: rgb(150,202,68) + padding-top: 185px + max-width: 1920px + margin: 0 auto + + //- Nav + + #site-nav + position: absolute + background: url(/images/pages/base/nav_background.png) top center no-repeat + left: 0 + top: 56px + right: 0 + height: 144px + text-align: center + min-width: 1024px + z-index: 1 + + #nav-logo + position: absolute + margin-right: auto + margin-left: auto + left: 0 + right: 0 + top: -45px + + #site-nav-links + position: absolute + bottom: 21px + left: 0 + right: 0 + + a + color: rgb(158,135,119) + &:hover + color: $white + + a, button, select + font-size: 18px + text-transform: uppercase + font-family: Open Sans Condensed + margin: 0 7px + + button, select + position: relative + top: -3px + height: 32px + color: #444 + + .signup-button + background: red + color: white + + .login-button + background: white + color: black + + .language-dropdown + width: auto + display: inline-block + + #site-nav-smooth-edge + position: absolute + left: 0 + right: 0 + bottom: 0 + height: 5px + + + //- Account menu + + .dropdown + .dropdown-menu + left: auto + width: 280px + padding: 0px + border-radius: 0px + font-family: Open Sans Condensed + font-variant: small-caps + + > .user-dropdown-header + position: relative + background: #E4CF8C + height: 160px + padding: 10px + text-align: center + color: black + border-bottom: #32281e 1px solid + > a:hover + background-color: transparent + img + border: #e3be7a 8px solid + height: 98px // Includes the border + &:hover + box-shadow: 0 0 20px #e3be7a + > h3 + margin-top: 10px + text-shadow: 2px 2px 3px white + color: #31281E + .user-level + position: absolute + top: 73px + right: 86px + color: gold + text-shadow: 1px 1px black, -1px -1px 0 black, 1px -1px 0 black, -1px 1px 0 black + + .user-dropdown-body + color: black + padding: 15px + letter-spacing: 1px + font: 15px 'Helvetica Neue', Helvetica, Arial, sans-serif + +clearfix() + + .user-dropdown-footer + padding: 10px + margin-left: 0px + font-size: 14px + +clearfix() + + .btn-flat + border: #ddd 1px solid + border-radius: 0px + margin: 0px + + + //- Content + + #site-content-area + background: rgb(240,229,199) + margin: 0 auto -20px + width: 1024px + border: 5px solid rgb(110,88,41) + padding: 20px 12px + + + //- Footer + + #site-footer + width: 100% + height: 130px + position: relative + overflow: hidden + + // Recycling the nav bar background as a rotated image + #footer-background + transform: rotate(180deg) + margin: 0 auto + display: block + + #footer-links, #footer-credits + position: absolute + left: 0 + right: 0 + text-align: center + + #footer-links + top: 20px + height: 45px + padding: 11px + + a + color: rgb(158,135,119) + font-size: 18px + text-transform: uppercase + font-family: Open Sans Condensed + margin: 0 7px + + &:hover + color: $white + + .share-buttons + display: inline-block + position: relative + top: 3px + margin-left: 20px + + .share-buttons, .partner-badges + padding-bottom: 10px + text-align: center + @include opacity(0.75) + + &.fade-in + @include opacity(0) + + &:hover, &:active + @include opacity(1) + @include transition(opacity .10s linear) + + .github-star-button + margin-left: 20px + + &>div + display: inline-block + vertical-align: top + + #footer-credits + top: 79px + height: 50px + color: rgb(158,135,119) + font-size: 12px + + > * + margin: 0 15px + width: 186px + display: inline-block + + #footer-logo + width: 160px + + & > span + position: relative + top: 8px + + a + color: rgb(238,227,131) \ No newline at end of file diff --git a/app/styles/common/top_nav.sass b/app/styles/common/top_nav.sass deleted file mode 100644 index 5457e9cf0..000000000 --- a/app/styles/common/top_nav.sass +++ /dev/null @@ -1,234 +0,0 @@ -@import "app/styles/bootstrap/variables" -@import "app/styles/mixins" - -// This is still very blocky. Browser reflows? Investigate why. -.open > .dropdown-menu - animation-name: fadeAnimation - animation-duration: .7s - animation-iteration-count: 1 - animation-timing-function: ease - animation-fill-mode: forwards - -webkit-animation-name: fadeAnimation - -webkit-animation-duration: .7s - -webkit-animation-iteration-count: 1 - -webkit-animation-timing-function: ease - -webkit-animation-fill-mode: backwards - -moz-animation-name: fadeAnimation - -moz-animation-duration: .7s - -moz-animation-iteration-count: 1 - -moz-animation-timing-function: ease - -moz-animation-fill-mode: forwards - -@keyframes fadeAnimation - from - opacity: 0 - top: 120% - to - opacity: 1 - top: 100% - -@-webkit-keyframes fadeAnimation - from - opacity: 0 - top: 120% - to - opacity: 1 - top: 100% - -a.disabled - color: #5b5855 - text-decoration: none - cursor: default - -#top-nav - a.navbar-brand - padding: 4px 20px 0px 20px - margin-left: -20px - - .navbar-nav - float: right - - .navbuttontext, .fancy-select .trigger - font-size: 20px - font-weight: 400 - letter-spacing: 1px - - .navbuttontext-account - display: inline-block - padding: 0 5px 0 0 - margin: 0 5px 0 0 - height: 18px - - .account-settings-image - width: 18px - height: 18px - margin-right: 5px - - .glyphicon-user - font-size: 16px - margin-right: 5px - - .dropdown - .dropdown-menu - left: auto - width: 280px - padding: 0px - border-radius: 0px - font-family: Open Sans Condensed - font-variant: small-caps - - > .user-dropdown-header - position: relative - background: #E4CF8C - height: 160px - padding: 10px - text-align: center - color: black - border-bottom: #32281e 1px solid - > a:hover - background-color: transparent - img - border: #e3be7a 8px solid - height: 98px // Includes the border - &:hover - box-shadow: 0 0 20px #e3be7a - > h3 - margin-top: 10px - text-shadow: 2px 2px 3px white - color: #31281E - .user-level - position: absolute - top: 73px - right: 86px - color: gold - text-shadow: 1px 1px black, -1px -1px 0 black, 1px -1px 0 black, -1px 1px 0 black - - .user-dropdown-body - color: black - padding: 15px - letter-spacing: 1px - font: 15px 'Helvetica Neue', Helvetica, Arial, sans-serif - +clearfix() - - .user-dropdown-footer - padding: 10px - margin-left: 0px - font-size: 14px - +clearfix() - - .btn-flat - border: #ddd 1px solid - border-radius: 0px - margin: 0px - - .nav.navbar-link-text > li > a - font-weight: normal - font-size: 25px - letter-spacing: 2px - color: $white - &:hover - color: #f8e413 - - .navbar-link-text > li > a:hover - background: darken($body-bg, 3%) - - .btn, .btn-group, .fancy-select - margin-top: 13px - - .nav-tabs > .active > a, .nav-tabs > .active > a:hover, .nav-tabs > .active > a:focus - background-color: #eee - - .nav-tabs > li - cursor: pointer - - font-size: 25px - a:not(.btn) - line-height: 25px - - .btn - font-size: 20px - padding: 4px 12px - - .btn, .fancy-select - float: right - margin-left: 10px - line-height: 20px - - select - opacity: 0 - - .fancy-select - .trigger - padding: 5px 25px 3px 10px - width: auto - &:after - top: 13px - max-width: 140px - - div.fancy-select - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25) - text-transform: none - - div.trigger - background-color: #9d8f5a - background-image: linear-gradient(to bottom, #a4955e, #948754) - background-repeat: repeat-x - border: 1px solid #cccccc - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25) - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05) - color: white - font-variant: small-caps - &:after - border-top-color: white - &.open - background-color: #8B7F51 - color: #ebebeb - &:after - border-top-color: #ebebeb - ul.options - max-height: 415px - background-color: #9d8f5a - right: 0 - left: auto - overflow-x: hidden - &.open - top: 36px - li - color: #ebebeb - padding: 8px 20px - - .navbar-toggle - display: none - -@media only screen and (max-width: 768px) - #top-nav - display: inline - button.navbar-toggle - background: #483a2d - border: 2px solid #2f261d - display: inline-block - - span.icon-bar - background: #F9E612 - - a.navbar-brand - padding: 4px 20px 0px 20px - margin-left: 0 - - .navbar-nav - float: none - margin: 0 0 20px 0 - overflow: visible - - .dropdown-menu - background-color: white - position: absolute - - .btn, .fancy-select - margin-bottom: 10px - - .btn, .fancy-select - float: none - - .fancy-select .options - right: auto diff --git a/app/styles/home.sass b/app/styles/home.sass index 7584a4eab..6e63b47d8 100644 --- a/app/styles/home.sass +++ b/app/styles/home.sass @@ -3,87 +3,56 @@ #home-view - h1 + #spacer + height: 750px + + #play-button, #or-ipad, #apple-store-button, #slogan, .alert text-align: center - margin-top: 0 - - .game-mode-wrapper - position: relative - margin-bottom: 60px - - img - display: block - margin: 0 auto - @include transition(box-shadow .50s ease-in-out) - border-radius: 11px - - text-shadow: 2px 2px 5px black - - h3 - color: $yellow - position: absolute - top: 10px - left: 40px - font-size: 70px - margin-top: 0 - - h4 - color: #e8d9c5 - position: absolute - top: 75px - left: 140px - font-size: 30px - margin-top: 0 - - .play-text - position: absolute - right: 45px - bottom: -25px - color: $yellow - font-size: 90px - font-family: Open Sans Condensed - font-variant: small-caps - @include transition(color .25s ease-in-out) - - &:hover div, &.hovered div - color: lighten($yellow, 20%) - &:hover img, &.hovered img - filter: brightness(1.2) - -webkit-filter: brightness(1.2) - box-shadow: 0 0 15px black - - .code-language-logo - background-color: transparent - background-repeat: no-repeat - position: absolute - right: 35px - top: 15px - width: 50px - height: 50px - - &.inverted - filter: invert(100%) - -webkit-filter: invert(100%) + text-transform: uppercase + font-weight: bold + position: absolute + margin-right: auto + margin-left: auto + left: 0 + right: 0 + font-weight: bold -@media only screen and (max-width: 768px) - #home-view - #site-slogan - font-size: 30px - margin-bottom: 30px - .game-mode-wrapper - width: 100% - img - width: 100% - .play-text - position: absolute - right: 15px - bottom: -15px - color: $yellow - font-size: 50px - font-family: Open Sans Condensed - font-variant: small-caps - @include transition(color .10s linear) - - h1 + #play-button text-align: center - margin-top: 0 + padding-top: 170px + font-size: 50px + color: rgb(255,253,149) + text-shadow: 0 0 6px black,0 0 6px black,0 0 6px black,0 0 6px black, 0 0 6px black,0 0 6px black,0 0 6px black,0 0 6px black, 0 0 6px black,0 0 6px black,0 0 6px black,0 0 6px black, 0 0 6px black,0 0 6px black,0 0 6px black,0 0 6px black, 0 0 6px black,0 0 6px black,0 0 6px black,0 0 6px black + top: 308px + width: 218px + height: 219px + background-image: url(/images/pages/home/play_button.png) + background-position: 0 219px + + &:hover + background-position: 0 0 + color: rgb(230,180,75) + text-decoration: none + + #or-ipad + top: 540px + color: rgb(119,101,84) + font-size: 17px + max-width: 211px + + #apple-store-button + top: 593px + height: 63px + + #slogan + top: 681px + height: 132px + width: 276px + padding: 15px + font-size: 28px + line-height: 32px + color: rgb(50,40,31) + + .alert + top: 213px + border: 5px solid darkred \ No newline at end of file diff --git a/app/styles/user/user_home.sass b/app/styles/user/user_home.sass index 955294d69..8e80ca8fc 100644 --- a/app/styles/user/user_home.sass +++ b/app/styles/user/user_home.sass @@ -2,8 +2,6 @@ @import "app/styles/bootstrap/variables" #user-home - margin-top: 20px - .left-column +make-sm-column(4) diff --git a/app/templates/base.jade b/app/templates/base.jade index 9bf6b1350..ac6b2360c 100644 --- a/app/templates/base.jade +++ b/app/templates/base.jade @@ -1,81 +1,67 @@ -body - #fb-root - block header - .nav.navbar.navbar-fixed-top#top-nav - .content.clearfix - .navbar-header - button.navbar-toggle(type="button" data-toggle="collapse" data-target=".navbar-nav.collapse") - span.sr-only Toggle navigation - span.icon-bar - span.icon-bar - span.icon-bar +#site-nav + img#nav-logo(src="/images/pages/base/logo.png", title="CodeCombat - Learn how to code by playing a game", alt="CodeCombat") + div#site-nav-links + a(href="/") + span.glyphicon.glyphicon-home + a(href="/about", data-i18n="nav.about") + a(href='/play/ladder', data-i18n="home.multiplayer") + a(href='/community', data-i18n="nav.community") + a(href='http://blog.codecombat.com/', data-i18n="nav.blog") + a(href='http://discourse.codecombat.com/', data-i18n="nav.forum") - a.navbar-brand(href='/') - img(src="/images/pages/base/logo.png", title="CodeCombat - Learn how to code by playing a game", alt="CodeCombat") - - ul(class='navbar-link-text').nav.navbar-nav.navbar-collapse.collapse - if me.get('anonymous') === false - li.dropdown - button.btn.btn-primary.navbuttontext.header-font.dropdown-toggle(href="#", data-toggle="dropdown") - if me.get('photoURL') - img.account-settings-image(src=me.getPhotoURL(18), alt="") - else - i.glyphicon.glyphicon-user - .navbuttontext-account(data-i18n="nav.account" href="/account") Account - span.caret - ul.dropdown-menu(role="menu") - li.user-dropdown-header - span.user-level= me.level() - a(href="/user/#{me.getSlugOrID()}") - img.img-circle(src="#{me.getPhotoURL()}" alt="") - h3=me.displayName() - li.user-dropdown-body - .col-xs-4.text-center - a(href="/user/#{me.getSlugOrID()}" data-i18n="nav.profile") Profile - .col-xs-4.text-center - a(href="/user/#{me.getSlugOrID()}/stats" data-i18n="nav.stats") Stats - .col-xs-4.text-center - a.disabled(data-i18n="nav.code") Code - li.user-dropdown-footer - .pull-left - a.btn.btn-default.btn-flat(href="/account" data-i18n="nav.account") Account - .pull-right - button#logout-button.btn.btn-default.btn-flat(data-i18n="login.log_out") Log Out + if me.get('anonymous') === false + span.dropdown + button.btn.btn-sm.header-font.dropdown-toggle(href="#", data-toggle="dropdown") + if me.get('photoURL') + img.account-settings-image(src=me.getPhotoURL(18), alt="") else - li - button.btn.btn-primary.navbuttontext.header-font.auth-button - span(data-i18n="login.log_in") Log In - span.spr.spl / - span(data-i18n="login.sign_up") Create Account - li - select.language-dropdown + i.glyphicon.glyphicon-user + span.spl.spr(data-i18n="nav.account" href="/account") Account + span.caret + ul.dropdown-menu(role="menu") + li.user-dropdown-header + span.user-level= me.level() + a(href="/user/#{me.getSlugOrID()}") + img.img-circle(src="#{me.getPhotoURL()}" alt="") + h3=me.displayName() + li.user-dropdown-body + .col-xs-4.text-center + a(href="/user/#{me.getSlugOrID()}" data-i18n="nav.profile") Profile + .col-xs-4.text-center + a(href="/user/#{me.getSlugOrID()}/stats" data-i18n="nav.stats") Stats + .col-xs-4.text-center + a.disabled(data-i18n="nav.code") Code + li.user-dropdown-footer + .pull-left + a.btn.btn-default.btn-flat(href="/account" data-i18n="nav.account") Account + .pull-right + button#logout-button.btn.btn-default.btn-flat(data-i18n="login.log_out") Log Out - block outer_content - #outer-content-wrapper(class=showBackground ? 'show-background' : '') - #intermediate-content-wrapper - #inner-content-wrapper - .main-content-area - block content - p If this is showing, you dun goofed - .achievement-corner + else + button.btn.btn-sm.btn-primary.header-font.signup-button(data-i18n="login.sign_up") + button.btn.btn-sm.btn-default.header-font.login-button(data-i18n="login.log_in") + select.language-dropdown.form-control + + +block outer_content + #site-content-area + block content + p If this is showing, you dun goofed + .achievement-corner + + +block footer + #site-footer + img#footer-background(src="/images/pages/base/nav_background.png") + + #footer-links + a(href='/contribute', tabindex=-1, data-i18n="nav.contribute") Contribute + a(href='/legal', tabindex=-1, data-i18n="nav.legal") Legal + a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/ContactModal", data-i18n="nav.contact") Contact + a(href='/teachers', data-i18n="nav.teachers") Teachers + if me.isAdmin() + a(href='/admin', data-i18n="nav.admin") Admin - block footer - .footer.clearfix - .content - p.footer-link-text - a(href='/', tabindex=-1, data-i18n="nav.home") Home - a(href='/play/ladder', tabindex=-1, data-i18n="home.multiplayer") Multiplayer - a(href='/community', tabindex=-1, data-i18n="nav.community") Community - a(href='/contribute', tabindex=-1, data-i18n="nav.contribute") Contribute - a(href='/legal', tabindex=-1, data-i18n="nav.legal") Legal - a(href='/about', tabindex=-1, data-i18n="nav.about") About - a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/ContactModal", data-i18n="nav.contact") Contact - a(href='http://blog.codecombat.com/', data-i18n="nav.blog") Blog - a(href='http://discourse.codecombat.com/', data-i18n="nav.forum") Forum - a(href='/teachers', data-i18n="nav.teachers") Teachers - if me.isAdmin() - a(href='/admin', data-i18n="nav.admin") Admin - if usesSocialMedia .share-buttons if !isIE @@ -84,9 +70,18 @@ body if !isIE a.twitter-follow-button(href="https://twitter.com/CodeCombat", data-show-count="true", data-show-screen-name="false", data-dnt="true", data-align="right", data-i18n="nav.twitter_follow") Follow iframe.github-star-button(src="http://ghbtns.com/github-btn.html?user=codecombat&repo=codecombat&type=watch&count=true", allowtransparency="true", frameborder="0", scrolling="0", width="110", height="20") - - .partner-badges - a.mixpanel-badge(href="https://mixpanel.com/f/partner") - img(src="//cdn.mxpnl.com/site_media/images/partner/badge_light.png", alt="Mobile Analytics") - a.firebase-bade(href="https://www.firebase.com/") - img(src="/images/pages/base/firebase.png", alt="Powered by Firebase") + + #footer-credits + a.mixpanel-badge(href="https://mixpanel.com/f/partner") + img(src="//cdn.mxpnl.com/site_media/images/partner/badge_light.png", alt="Mobile Analytics") + span + span © All Rights Reserved + br + span CodeCombat 2014 + img#footer-logo(src="/images/pages/base/logo.png", alt="CodeCombat") + span + span Site Design by + br + a(href="http://www.fullyillustrated.com/") Fully Illustrated + a.firebase-bade(href="https://www.firebase.com/") + img(src="/images/pages/base/firebase.png", alt="Powered by Firebase") diff --git a/app/templates/home.jade b/app/templates/home.jade index 119032578..bc0ce1c28 100644 --- a/app/templates/home.jade +++ b/app/templates/home.jade @@ -1,12 +1,19 @@ extends /templates/base -block content +block outer_content + #spacer + + a#play-button(href="/play", data-i18n="common.play") - h1#site-slogan(data-i18n="home.slogan") Learn to Code by Playing a Game + #or-ipad(data-i18n="home.or_ipad") + + img(src="/images/pages/home/app_store_badge.svg")#apple-store-button + + #slogan(data-i18n="home.slogan") .alert.alert-danger.lt-ie9 strong(data-i18n="home.no_ie") CodeCombat does not run in Internet Explorer 8 or older. Sorry! - + if isMobile .alert.alert-danger.mobile strong(data-i18n="home.no_mobile") CodeCombat wasn't designed for mobile devices and may not work! @@ -15,12 +22,4 @@ block content strong(data-i18n="home.old_browser") Uh oh, your browser is too old to run CodeCombat. Sorry! br span(data-i18n="home.old_browser_suffix") You can try anyway, but it probably won't work. - - a#beginner-campaign(href="/play") - div.game-mode-wrapper - img(src="/images/pages/home/play_img.png").img-rounded - h3(data-i18n="home.campaign") Campaign - h4(data-i18n="home.for_beginners") For Beginners - .play-text(data-i18n="home.play") Play - - .clearfix + \ No newline at end of file diff --git a/app/templates/play/ladder_home.jade b/app/templates/play/ladder_home.jade index a496919b8..4a12d7683 100644 --- a/app/templates/play/ladder_home.jade +++ b/app/templates/play/ladder_home.jade @@ -13,7 +13,7 @@ block content if level.image img.level-image(src="#{level.image}", alt="#{level.name}").img-rounded else - img.level-image(src="/images/pages/home/multiplayer_notext.jpg", alt="#{level.name}").img-rounded + img.level-image(src="/images/pages/play/ladder/multiplayer_notext.jpg", alt="#{level.name}").img-rounded //h3= level.name + (level.disabled ? " (Coming soon!)" : "") .overlay-text.level-difficulty span(data-i18n="play.level_difficulty") Difficulty: diff --git a/app/views/HomeView.coffee b/app/views/HomeView.coffee index 7bc31c09e..e0997b7c8 100644 --- a/app/views/HomeView.coffee +++ b/app/views/HomeView.coffee @@ -11,7 +11,7 @@ module.exports = class HomeView extends RootView template: template events: - 'click #beginner-campaign': 'onClickBeginnerCampaign' + 'click #play-button': 'onClickBeginnerCampaign' constructor: -> super() diff --git a/app/views/admin/BaseView.coffee b/app/views/admin/BaseView.coffee index ca58690c0..d70ca3a29 100644 --- a/app/views/admin/BaseView.coffee +++ b/app/views/admin/BaseView.coffee @@ -4,3 +4,4 @@ template = require 'templates/base' module.exports = class BaseView extends RootView id: 'base-view' template: template + usesSocialMedia: true diff --git a/app/views/kinds/RootView.coffee b/app/views/kinds/RootView.coffee index 48f24b938..4e69f0146 100644 --- a/app/views/kinds/RootView.coffee +++ b/app/views/kinds/RootView.coffee @@ -25,7 +25,8 @@ module.exports = class RootView extends CocoView 'click #logout-button': 'logoutAccount' 'change .language-dropdown': 'onLanguageChanged' 'click .toggle-fullscreen': 'toggleFullscreen' - 'click .auth-button': 'onClickAuthButton' + 'click .signup-button': 'onClickSignupButton' + 'click .login-button': 'onClickLoginButton' 'click a': 'onClickAnchor' 'click button': 'toggleModal' 'click li': 'toggleModal' @@ -54,11 +55,16 @@ module.exports = class RootView extends CocoView subview = new WizardSettingsModal {} @openModalView subview - onClickAuthButton: -> + onClickSignupButton: -> AuthModal = require 'views/modal/AuthModal' - window.tracker?.trackEvent 'Homepage', Action: 'Auth Modal' if @id is 'home-view' - @openModalView new AuthModal {} - + window.tracker?.trackEvent 'Homepage', Action: 'Signup Modal' if @id is 'home-view' + @openModalView new AuthModal {mode: 'signup'} + + onClickLoginButton: -> + AuthModal = require 'views/modal/AuthModal' + window.tracker?.trackEvent 'Homepage', Action: 'Login Modal' if @id is 'home-view' + @openModalView new AuthModal {mode: 'login'} + onClickAnchor: (e) -> return if @destroyed anchorText = e?.currentTarget?.text @@ -84,11 +90,15 @@ module.exports = class RootView extends CocoView getRenderData: -> c = super() - c.showBackground = @showBackground c.usesSocialMedia = @usesSocialMedia c afterRender: -> + if @$el.find('#site-nav').length # hack... + @$el.addClass('site-chrome') + if @showBackground + @$el.addClass('show-background') + super(arguments...) @chooseTab(location.hash.replace('#', '')) if location.hash @buildLanguages() @@ -110,12 +120,8 @@ module.exports = class RootView extends CocoView buildLanguages: -> $select = @$el.find('.language-dropdown').empty() - if $select.hasClass('fancified') - $select.parent().find('.options, .trigger').remove() - $select.unwrap().removeClass('fancified') preferred = me.get('preferredLanguage', true) @addLanguagesToSelect($select, preferred) - $select.fancySelect().parent().find('.trigger').addClass('header-font') $('body').attr('lang', preferred) addLanguagesToSelect: ($select, initialVal) -> diff --git a/app/views/modal/AuthModal.coffee b/app/views/modal/AuthModal.coffee index 6027b8a86..5f55f7e3d 100644 --- a/app/views/modal/AuthModal.coffee +++ b/app/views/modal/AuthModal.coffee @@ -27,6 +27,7 @@ module.exports = class AuthModal extends ModalView constructor: (options) -> @onNameChange = _.debounce @checkNameExists, 500 super options + @mode = options.mode if options.mode getRenderData: -> c = super()