diff --git a/README.md b/README.md index 9da26c89..a2b16dee 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,8 @@ Now you can run the server: And open http://localhost:4200 in the browser. +Alternatively you can run `ember build --watch` and start the server with `waiter/script/server` + ### Running tests To run a test suite execute: @@ -25,3 +27,21 @@ To run a test suite execute: You can also start an interactive test runner for easier development: ember test --serve + + +### Updating the team page + +The team information can be found in `app/routes/team.coffee`. +To add another member just add the info in the same style as the previous ones. Like so + + { + name: 'Mr T' + title: 'Mascot' + handle: 'travisci' + nationality: 'internet' + country: 'internet' + image: 'mrt' + } + +The order of value pairs does not matter, the quotationmarks do. Name and title will be displayed as they are. The handle will be used to generate a link to Twitter and displayed with a '@' in front of it. Nationality and country determine the flags. Please use the name of the country and not the adjective (like 'germany' and NOT 'german'). Image is the identifier to find the right image and animated gif. 'mrt' in the example will result in `team-mrt.png` and `mrt-animated.gif`. +Add the images themselves to `public/images/team/` and additional flags to `public/images/pro-landing/`. Mind the naming conventions already in place. diff --git a/app/components/team-member.coffee b/app/components/team-member.coffee new file mode 100644 index 00000000..ced58d7c --- /dev/null +++ b/app/components/team-member.coffee @@ -0,0 +1,8 @@ +`import Ember from 'ember'` + +TeamMemberComponent = Ember.Component.extend + + tagName: 'li' + classNames: ['team-member'] + +`export default TeamMemberComponent` diff --git a/app/controllers/home-pro.coffee b/app/controllers/home-pro.coffee new file mode 100644 index 00000000..c05f5de9 --- /dev/null +++ b/app/controllers/home-pro.coffee @@ -0,0 +1,10 @@ +`import Ember from 'ember'` + +Controller = Ember.Controller.extend + + actions: + gaCta: (location) -> + _gaq.push(['_trackPageview', '/virtual/signup?'+ location]) + @auth.signIn() + +`export default Controller` diff --git a/app/controllers/plans.coffee b/app/controllers/plans.coffee new file mode 100644 index 00000000..c05f5de9 --- /dev/null +++ b/app/controllers/plans.coffee @@ -0,0 +1,10 @@ +`import Ember from 'ember'` + +Controller = Ember.Controller.extend + + actions: + gaCta: (location) -> + _gaq.push(['_trackPageview', '/virtual/signup?'+ location]) + @auth.signIn() + +`export default Controller` diff --git a/app/router.coffee b/app/router.coffee index 7b4d336b..d42fb3f1 100644 --- a/app/router.coffee +++ b/app/router.coffee @@ -66,6 +66,11 @@ Router.map -> @route 'auth' @route 'home' + @route 'home-pro', path: '/home-pro' + @route 'plans', path: '/plans' + @route 'team', path: '/about' + @route 'logo', path: '/logo' + @resource 'profile', path: '/profile', -> @resource 'accounts', path: '/', -> @resource 'account', path: '/:login' diff --git a/app/routes/application.coffee b/app/routes/application.coffee index 64e9196d..8d15d1ea 100644 --- a/app/routes/application.coffee +++ b/app/routes/application.coffee @@ -73,7 +73,7 @@ Route = TravisRoute.extend BuildFaviconMixin, afterSignOut: -> if @get('config').pro - @transitionTo('auth') + @transitionTo('home-pro') else @transitionTo('home') diff --git a/app/routes/home-pro.coffee b/app/routes/home-pro.coffee new file mode 100644 index 00000000..a843adc0 --- /dev/null +++ b/app/routes/home-pro.coffee @@ -0,0 +1,6 @@ +`import TravisRoute from 'travis/routes/basic'` + +Route = TravisRoute.extend + needsAuth: false + +`export default Route` diff --git a/app/routes/logo.coffee b/app/routes/logo.coffee new file mode 100644 index 00000000..c09424b6 --- /dev/null +++ b/app/routes/logo.coffee @@ -0,0 +1,7 @@ +`import Ember from 'ember'` +`import TravisRoute from 'travis/routes/basic'` + +Route = TravisRoute.extend + needsAuth: false + +`export default Route` diff --git a/app/routes/plans.coffee b/app/routes/plans.coffee new file mode 100644 index 00000000..f075291d --- /dev/null +++ b/app/routes/plans.coffee @@ -0,0 +1,10 @@ +`import BasicRoute from 'travis/routes/basic'` +`import config from 'travis/config/environment'` + +Route = BasicRoute.extend + needsAuth: false + redirect: -> + unless config.pro + @transitionTo('/') + +`export default Route` diff --git a/app/routes/team.coffee b/app/routes/team.coffee new file mode 100644 index 00000000..fd0ede97 --- /dev/null +++ b/app/routes/team.coffee @@ -0,0 +1,193 @@ +`import Ember from 'ember'` +`import TravisRoute from 'travis/routes/basic'` + +Route = TravisRoute.extend + needsAuth: false + + model: () -> + [ + { + name: 'Sven Fuchs' + title: 'The Original Builder' + handle: 'svenfuchs' + nationality: 'germany' + country: 'germany' + image: 'sven' + }, + { + name: 'Josh Kalderimis' + title: 'Chief Post-It Officer' + handle: 'j2h' + nationality: 'newzealand' + country: 'germany' + image: 'josh' + }, + { + name: 'Fritz Thielemann' + title: 'Admin Adventures' + handle: 'fritzek' + nationality: 'germany' + country: 'germany' + image: 'fritz' + }, + { + name: 'Konstantin Haase' + title: 'Haase of Pain' + handle: 'konstantinhaase' + nationality: 'germany' + country: 'germany' + image: 'konstantin' + }, + { + name: 'Mathias Meyer' + title: 'Director of Bacon Relations' + handle: 'roidrage' + nationality: 'germany' + country: 'germany' + image: 'mathias' + }, + { + name: 'Piotr Sarnacki' + title: 'Code Monkey' + handle: 'drogus' + nationality: 'poland' + country: 'germany' + image: 'piotr' + }, + { + name: 'Anika Lindtner' + title: 'Head Catwoman' + handle: 'langziehohr' + nationality: 'germany' + country: 'germany' + image: 'anika' + }, + { + name: 'Henrik Hodne' + title: 'Mac Master Man' + handle: 'henrikhodne' + nationality: 'norway' + country: 'norway' + image: 'henrik' + }, + { + name: 'Justine Arreche' + title: 'Lead Clipart Strategist' + handle: 'saltinejustine' + nationality: 'usa' + country: 'usa' + image: 'justine' + }, + { + name: 'Hiro Asari' + title: 'International Man of IPAs' + handle: 'hiro_asari' + nationality: 'japan' + country: 'usa' + image: 'hiro' + }, + { + name: 'Dan Buch' + title: 'That\'s Numberwang' + handle: 'meatballhat' + nationality: 'usa' + country: 'usa' + image: 'dan' + }, + { + name: 'Lisa Passing' + title: 'Queen of !important' + nationality: 'germany' + country: 'germany' + image: 'lisa' + }, + { + name: 'Carla Drago' + title: 'inchworm' + handle: 'carlad' + nationality: 'italy' + country: 'germany' + image: 'carla' + }, + { + name: 'Anja Reichmann' + title: 'Tyranjasaurus Specs' + handle: '_tyranja_' + nationality: 'germany' + country: 'germany' + image: 'anja' + }, + { + name: 'Aly Fulton' + title: 'Resident Linguist' + handle: 'sinthetix' + nationality: 'usa' + country: 'usa' + image: 'aly' + }, + { + name: 'Amanda Quaranto' + title: 'Crafting Extremist' + handle: 'aquaranto' + nationality: 'usa' + country: 'usa' + image: 'amanda' + }, + { + name: 'Jen Duke' + title: 'Gastrognome' + handle: 'dukeofberlin' + nationality: 'usa' + country: 'germany' + image: 'jen' + }, + { + name: 'Brandon Burton' + title: 'Regional Cloud Manager' + handle: 'solarce' + nationality: 'usa' + country: 'usa' + image: 'brandon' + }, + { + name: 'Emma Trimble' + title: 'Lead Pungineer' + handle: 'emdantrim' + nationality: 'usa' + country: 'usa' + image: 'emma' + }, + { + name: 'María de Antón' + title: 'Sous Chef at The Bloge' + handle: 'amalulla' + nationality: 'spain' + country: 'spain' + image: 'maria' + }, + { + name: 'Danish Khan' + title: 'Red Shirt' + handle: 'danishkhan' + nationality: 'usa' + country: 'usa' + image: 'danish' + }, + { + name: 'Dominic Jodoin' + title: 'Humble Tab Hoarder' + handle: 'cotsog' + nationality: 'canada' + country: 'canada' + image: 'dominic' + }, + { + name: 'Liza Brisker' + title: 'Brainy Trainee' + nationality: 'russia' + country: 'germany' + image: 'liz' + } + ] + +`export default Route` diff --git a/app/styles/app.scss b/app/styles/app.scss index 454f557d..c44215bc 100644 --- a/app/styles/app.scss +++ b/app/styles/app.scss @@ -6,6 +6,7 @@ @import "app/_mixins/mixins"; +@import "app/base"; @import "app/ansi"; @import "app/auth"; @import "app/forms"; @@ -58,11 +59,16 @@ @import "app/layouts/branches"; @import "app/layouts/broadcasts"; -@import "app/landing"; @import "app/layouts/requests"; @import "app/layouts/caches"; -@import "app/layouts/getting-started"; @import "app/layouts/first-sync"; @import "app/layouts/missing-notice"; @import "app/layouts/settings"; +@import "app/pages/landing"; +@import "app/pages/home-pro"; +@import "app/pages/getting-started"; +@import "app/pages/team"; +@import "app/pages/plans"; +@import "app/pages/logo"; + diff --git a/app/styles/app/_mixins/vars.sass b/app/styles/app/_mixins/vars.sass index c23a6330..0403f190 100644 --- a/app/styles/app/_mixins/vars.sass +++ b/app/styles/app/_mixins/vars.sass @@ -63,4 +63,3 @@ $grey-lighter: #A6ADAD $grey-light: #8d8d8d $grey-medium: #8d8d8d $grey-dark: #808080 - diff --git a/app/styles/app/base.sass b/app/styles/app/base.sass new file mode 100644 index 00000000..eeb1c84b --- /dev/null +++ b/app/styles/app/base.sass @@ -0,0 +1,2 @@ +strong + font-weight: 400 diff --git a/app/styles/app/layouts/profile.sass b/app/styles/app/layouts/profile.sass index 28e85e87..25ff25cb 100644 --- a/app/styles/app/layouts/profile.sass +++ b/app/styles/app/layouts/profile.sass @@ -53,7 +53,7 @@ position: relative margin-bottom: 3rem background-color: $cream-light - @extend %border-radius-4px + border-radius: 4px ol @include resetul padding: 1em 0 @@ -165,7 +165,7 @@ p.profile-user-last display: inline-block !important .profile-repo - @extend %border-radius-4px + border-radius: 4px position: relative display: inline-block width: grid-calc(13, 24) diff --git a/app/styles/app/layouts/top.sass b/app/styles/app/layouts/top.sass index 020b471a..d25b5f7f 100644 --- a/app/styles/app/layouts/top.sass +++ b/app/styles/app/layouts/top.sass @@ -1,8 +1,5 @@ -#auth #top .cta - display: none - -#top .cta +.top .cta border-bottom: 2px solid #E4E4E4 border-top: 2px solid #E4E4E4 line-height: 2.7em @@ -31,8 +28,15 @@ @media #{$medium-up} display: block +#auth .top .cta, +.landing-pro .cta + display: none !important + +.landing-pro .top + border-bottom: 1px solid #f1f1f1 + .top - background-color: #eff0ec + background-color: #f1f1f1 .topbar height: $top-height diff --git a/app/styles/app/layouts/untitled b/app/styles/app/layouts/untitled deleted file mode 100644 index ce1c8eb2..00000000 --- a/app/styles/app/layouts/untitled +++ /dev/null @@ -1,17 +0,0 @@ -.burger - overflow: auto - height: $top-height - @media #{$medium-up} - display: none - - .burger-btn - float: right - font-size: 50px - background: none - border: none - line-height: 1 - color: $grey-medium - outline: none !important - @include clearfix - &:hover - cursor: pointer \ No newline at end of file diff --git a/app/styles/app/main/log.sass b/app/styles/app/main/log.sass index 383559df..ab9d88f1 100644 --- a/app/styles/app/main/log.sass +++ b/app/styles/app/main/log.sass @@ -187,7 +187,7 @@ min-height: 70px line-height: 35px text-align: center - @extend %border-radius-4px + border-radius: 4px @media #{$medium-up} height: 70px line-height: 70px diff --git a/app/styles/app/modules/dropdown.sass b/app/styles/app/modules/dropdown.sass index 6afc0633..af929de1 100644 --- a/app/styles/app/modules/dropdown.sass +++ b/app/styles/app/modules/dropdown.sass @@ -6,7 +6,7 @@ $dropdown-border: #C3D9DB .dropdown--db @include resetul - @extend %border-radius-4px + border-radius: 4px position: absolute padding: .8em .5em z-index: 90 diff --git a/app/styles/app/modules/tiles.sass b/app/styles/app/modules/tiles.sass index 4b6e2449..1c4a612a 100644 --- a/app/styles/app/modules/tiles.sass +++ b/app/styles/app/modules/tiles.sass @@ -1,6 +1,6 @@ .tile - @extend %border-radius-4px + border-radius: 4px overflow: hidden position: relative padding: .8rem .8rem .8rem 3rem diff --git a/app/styles/app/layouts/getting-started.sass b/app/styles/app/pages/getting-started.sass similarity index 85% rename from app/styles/app/layouts/getting-started.sass rename to app/styles/app/pages/getting-started.sass index 89ae179f..6e01f85b 100644 --- a/app/styles/app/layouts/getting-started.sass +++ b/app/styles/app/pages/getting-started.sass @@ -1,29 +1,20 @@ .getting-started - + @include linkStyle max-width: 900px margin: auto - h1 color: #808080 - font-size: 35px + font-size: 36px margin-bottom: 1em - font-weight: 400 + font-weight: 300 line-height: 1.1 - h2 color: #35a764 font-size: 22px margin-bottom: 1em - font-weight: 400 - - a - color: #5aa4a3 - font-weight: 600 - &:hover - text-decoration: underline - + font-weight: 300 p, li - color: #828b8b + color: #666 font-size: $font-size-m line-height: 25px @@ -70,7 +61,7 @@ .note padding: .4em .5em font-size: $font-size-m - @extend %border-radius-4px + border-radius: 4px font-style: italic code display: inline-block @@ -78,7 +69,7 @@ padding: 0em 0.4em border: 1px solid border-radius: 3px - font-family: monaco + font-family: monaco, monospace font-size: 11px font-style: normal line-height: 1.7 diff --git a/app/styles/app/pages/home-pro.sass b/app/styles/app/pages/home-pro.sass new file mode 100644 index 00000000..4e3009b0 --- /dev/null +++ b/app/styles/app/pages/home-pro.sass @@ -0,0 +1,295 @@ +$teal: #40A3AD +$green: #39A85B +$red: #DB4242 +$yellow: #E5C025 +$grey: #858585 + +@mixin linkStyle + a + text-decoration: none + border-bottom: 1px solid #bfc0c1 + padding-bottom: 0.1em + transition: color 200ms ease, border 200ms ease + &:hover, + &:active + color: #303030 + text-decoration: none + border-color: transparent + +.landing-pro + + br + display: none + @media #{$medium-up} + display: block + + .wrapper + width: 100% + padding-bottom: 0 + margin-bottom: 0 + + .landing-footer + margin-top: 0 + + .inner + margin: auto + max-width: 1024px + padding: 0 $column-gutter/2 + + %h1 + margin: 0 + font-size: 54px + font-weight: 300 + line-height: 1.2 + + .h1--grey + @extend %h1 + @include linkStyle + color: $grey !important + a + color: $grey + + .h1--teal + @extend %h1 + font-size: 64px + color: #408692 !important + + .h1--green + @extend %h1 + color: $green !important + + .h1--red + @extend %h1 + color: $red !important + + %h2 + margin: 0 0 .5em + font-size: 36px + font-weight: 300 + line-height: 1.3 + + .h2--grey + @extend %h2 + color: $grey + + .h2--green + @extend %h2 + color: $green + + .h2--red + @extend %h2 + color: $red + + .h2--teal + @extend %h2 + color: $teal + + %h3 + margin: .5em 0 + font-size: 22px + font-weight: 300 + + .h3 + @extend %h3 + + .h3--plans + @extend %h3 + font-size: 28px + text-align: center + line-height: 1.3 + + .h3--teal + @extend %h3 + color: $teal + + .h3--red + @extend %h3 + color: $red + + .h3--green + @extend %h3 + color: $green + + .h3--yellow + @extend %h3 + color: $yellow + + .text-big + @include linkStyle + font-size: 20px + font-weight: 300 + line-height: 1.55 + + .text-small + @include linkStyle + margin: 0 0 2.5em + font-size: 16px + + .text-logo + @extend .text-small + line-height: 1.8 + margin-bottom: 2em + text-align: left + @media #{$medium-up} + width: 80% + margin-right: auto + margin-left: auto + @media #{$large-up} + width: 70% + + .landing-button + display: inline-block + padding: 0.9em 1em + margin: 0 auto + color: white + border-radius: 2px + font-size: 27px + text-decoration: none + background-color: $green + &:hover + color: white + background-color: #73c78d + + .hero-button + @extend .landing-button + padding: 0.9em 1em 0.9em 3em + background: + image: inline-image('landing-page/sign-in-mascot.svg') + size: 1.7em + position: 0.8em center + repeat: no-repeat + + .hero-computer + width: 100% + height: 35em + margin-top: 3em + @media #{$medium-up} + position: absolute + margin-top: 0 + transform: translateY(-.1rem) + + .section--grey + padding: 4rem 0 5rem + background-color: #F6F6F6 + + .section--white + padding: 6rem 0 + background-color: white + + .section--center + text-align: center + + .section--feature + .inner + display: flex + justify-content: space-between + flex-direction: column-reverse + align-items: center + @media #{$medium-up} + flex-direction: row + + .section-list, + .section-text + flex: 0 0 50% + padding: 0 1em + + .list--check + li + @extend .text-big + line-height: 1.65 + + + .section--hero + .inner + display: flex + justify-content: space-between + flex-direction: column + @media #{$medium-up} + flex-direction: row + + .section-text + flex: 0 0 47% + text-align: center + @media #{$medium-up} + text-align: left + .section-image + flex: 0 0 50% + + .section-image + position: relative + + .text-big + margin: 0.8em 0 1.7em + + %list + list-style: none + padding: 0 + margin: 0 + + .list--customers + @extend %list + display: flex + justify-content: space-around + flex-wrap: wrap + align-items: center + width: 80% + margin: 2em auto 0 + li + flex: 0 0 9em + margin-bottom: 3em + @media #{$medium-up} + margin-bottom: 0 + + .list--languages + @extend %list + display: flex + justify-content: space-around + flex-wrap: wrap + li + flex: 0 0 5em + + .list--check, + .list--cross + @extend %list + padding: 0 0 0 2em + li + &:before + content: "" + display: inline-block + height: 1.2em + width: 1.2em + margin-right: .3em + margin-left: -1.5em + vertical-align: middle + + .list--check + li:before + background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjAgMjAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDIwIDIwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGcgaWQ9IlBhc3NlZCI+Cgk8Zz4KCQk8cGF0aCBmaWxsPSIjMzlBODVCIiBkPSJNOS42LDE0LjRjLTAuMSwwLTAuMy0wLjEtMC40LTAuMWwtNC0zLjNjLTAuMy0wLjItMC4zLTAuNi0wLjEtMC45UzUuOCw5LjgsNi4xLDEwbDMuNCwyLjhsNC45LTcuNQoJCQlDMTQuNiw1LDE1LDQuOSwxNS4zLDUuMWMwLjMsMC4yLDAuNCwwLjYsMC4yLDAuOWwtNS4zLDguMUMxMC4xLDE0LjMsOS45LDE0LjQsOS42LDE0LjRDOS43LDE0LjQsOS43LDE0LjQsOS42LDE0LjR6Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+") + + .list--cross + li:before + background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjAgMjAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDIwIDIwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KICA8ZyBpZD0iRmFpbGVkIj4KICAJPHBhdGggZmlsbD0iI0RCNDI0MiIgZD0iTTEwLjksMTBsMy45LTMuOWMwLjItMC4yLDAuMi0wLjYsMC0wLjljLTAuMi0wLjItMC42LTAuMi0wLjksMEwxMCw5LjFMNi4xLDUuMmMtMC4yLTAuMi0wLjYtMC4yLTAuOSwwCiAgCQljLTAuMiwwLjItMC4yLDAuNiwwLDAuOUw5LjEsMTBsLTMuOSwzLjljLTAuMiwwLjItMC4yLDAuNiwwLDAuOUM1LjMsMTQuOSw1LjUsMTUsNS42LDE1czAuMy0wLjEsMC40LTAuMmwzLjktMy45bDMuOSwzLjkKICAJCWMwLjEsMC4xLDAuMywwLjIsMC40LDAuMmMwLjIsMCwwLjMtMC4xLDAuNC0wLjJjMC4yLTAuMiwwLjItMC42LDAtMC45TDEwLjksMTB6Ii8+CiAgPC9nPgo8L3N2Zz4=") + + .list--features + @extend %list + display: flex + justify-content: space-between + flex-flow: column wrap + margin-top: 5em + @media #{$medium-up} + flex-flow: row wrap + margin-top: 1em + li + flex: 0 0 16em + + [class^="feature-"] + display: block + height: 2em + width: 2em + margin: auto + + [class^="language-"] + display: block + height: 3.5em + width: 3.5em + margin: 0 auto .5em diff --git a/app/styles/app/landing.sass b/app/styles/app/pages/landing.sass similarity index 98% rename from app/styles/app/landing.sass rename to app/styles/app/pages/landing.sass index 73c53721..81c7a98b 100644 --- a/app/styles/app/landing.sass +++ b/app/styles/app/pages/landing.sass @@ -87,7 +87,7 @@ border-radius: 2px .hero - background-color: #faf9f6 + background-color: #f6f6f6 h1 color: #339999 line-height: 1.2em @@ -144,7 +144,7 @@ padding: 0 0 0 12% .recent-builds - background-color: #faf9f6 + background-color: #f6f6f6 min-height: 44rem .recent-builds-text @@ -220,7 +220,7 @@ display: inline-block .features-list - background-color: #faf9f6 + background-color: #f6f6f6 h2 margin: 0 diff --git a/app/styles/app/pages/logo.sass b/app/styles/app/pages/logo.sass new file mode 100644 index 00000000..93e93145 --- /dev/null +++ b/app/styles/app/pages/logo.sass @@ -0,0 +1,98 @@ +.landing-pro + .list--fonts + @extend %list + display: flex + flex-wrap: wrap + justify-content: space-between + margin: 3em 0 7em + flex-direction: column + @media #{$medium-up} + flex-direction: row + li + flex: 1 0 33% + margin-bottom: 2em + @media #{$medium-up} + flex: 0 0 33% + margin-bottom: 0 + [class^="font-"] + font-size: 36px + margin: 0 + .text-big + margin: .5em 0 0 + .font-light + font-weight: 300 + color: $teal + .font-regular + font-weight: 400 + color: #D3B01E + .font-semibold + font-weight: 600 + color: $grey + + .list--colors + @extend %list + display: flex + flex-wrap: wrap + justify-content: space-around + flex-direction: column + @media #{$medium-up} + flex-direction: row + + li + flex: 0 0 19% + [class^="colors-sample"] + height: 3em + margin-bottom: .5em + .colors-sample--teal + background-color: $teal + .colors-sample--green + background-color: $green + .colors-sample--yellow + background-color: $yellow + .colors-sample--red + background-color: $red + .colors-sample--grey + background-color: #666 + + .list--mascot + @extend %list + display: flex + flex-wrap: wrap + justify-content: space-around + justify-content: center + @media #{$medium-up} + width: 80% + margin: auto + li + flex: 0 0 15em + + .logo-logos + margin-top: 6em + display: flex + flex-wrap: wrap + justify-content: space-between + figure + margin: 0 + flex: 1 0 48% + [class^="logos--"] + padding: 2em + margin-bottom: 1em + .logos--light + background-color: #EDF3F3 + .logos--dark + background-color: #40A3AD + + + .does-donts + @media #{$medium-up} + display: flex + flex-wrap: wrap + justify-content: space-between + .does, + .donts + flex: 0 0 46% + + .does + margin-bottom: 3em + @media #{$medium-up} + margin-bottom: 0 diff --git a/app/styles/app/pages/plans.sass b/app/styles/app/pages/plans.sass new file mode 100644 index 00000000..fefefce4 --- /dev/null +++ b/app/styles/app/pages/plans.sass @@ -0,0 +1,142 @@ +.landing-pro + .list--plans + @extend %list + display: flex + flex-wrap: wrap + justify-content: space-between + margin: 5em 0 + + [class^="plan--"] + flex: 1 0 230px + padding: .5em 1.5em 3em + margin-bottom: 2em + border: + width: 2px + color: #E8E8E8 + style: solid + + @media #{$medium-up} + flex: 0 0 230px + margin-bottom: 0 + + .list--check + margin: 3em 0 + font-size: 16px + li + line-height: 2 + &[data-jobs]:before + content: attr(data-jobs) + width: 1.2em + background-image: none + line-height: 1 + font-weight: 600 + text-align: center + font-size: 18px + + =colorPlans($color, $hover-color, $bg: true) + border-top-color: $color + .plan-title + color: $color + .plan-cta-btn + border: $color solid 1px + @if $bg + background-color: $color + color: white + @else + color: $color + background-color: white + &:hover + border-color: $hover-color + background-color: $hover-color + .list--check li:before + color: $color + + .plan--red + +colorPlans($red, #FCF0F0, false) + .list--check li:before + background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjAgMjAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDIwIDIwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGcgaWQ9IlBhc3NlZCI+Cgk8Zz4KCQk8cGF0aCBmaWxsPSIjREI0MjQyIiBkPSJNOS42LDE0LjRjLTAuMSwwLTAuMy0wLjEtMC40LTAuMWwtNC0zLjNjLTAuMy0wLjItMC4zLTAuNi0wLjEtMC45UzUuOCw5LjgsNi4xLDEwbDMuNCwyLjhsNC45LTcuNQoJCQlDMTQuNiw1LDE1LDQuOSwxNS4zLDUuMWMwLjMsMC4yLDAuNCwwLjYsMC4yLDAuOWwtNS4zLDguMUMxMC4xLDE0LjMsOS45LDE0LjQsOS42LDE0LjRDOS43LDE0LjQsOS43LDE0LjQsOS42LDE0LjR6Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+") + .plan--green + +colorPlans($green, #73c78d) + .list--check li:before + background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjAgMjAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDIwIDIwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGcgaWQ9IlBhc3NlZCI+Cgk8Zz4KCQk8cGF0aCBmaWxsPSIjMzlBODVCIiBkPSJNOS42LDE0LjRjLTAuMSwwLTAuMy0wLjEtMC40LTAuMWwtNC0zLjNjLTAuMy0wLjItMC4zLTAuNi0wLjEtMC45UzUuOCw5LjgsNi4xLDEwbDMuNCwyLjhsNC45LTcuNQoJCQlDMTQuNiw1LDE1LDQuOSwxNS4zLDUuMWMwLjMsMC4yLDAuNCwwLjYsMC4yLDAuOWwtNS4zLDguMUMxMC4xLDE0LjMsOS45LDE0LjQsOS42LDE0LjRDOS43LDE0LjQsOS43LDE0LjQsOS42LDE0LjR6Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+") + .plan--teal + +colorPlans($teal, #8CC8CE) + .list--check li:before + background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjAgMjAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDIwIDIwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGcgaWQ9IlBhc3NlZCI+Cgk8Zz4KCQk8cGF0aCBmaWxsPSIjNDBBM0FEIiBkPSJNOS42LDE0LjRjLTAuMSwwLTAuMy0wLjEtMC40LTAuMWwtNC0zLjNjLTAuMy0wLjItMC4zLTAuNi0wLjEtMC45UzUuOCw5LjgsNi4xLDEwbDMuNCwyLjhsNC45LTcuNQoJCQlDMTQuNiw1LDE1LDQuOSwxNS4zLDUuMWMwLjMsMC4yLDAuNCwwLjYsMC4yLDAuOWwtNS4zLDguMUMxMC4xLDE0LjMsOS45LDE0LjQsOS42LDE0LjRDOS43LDE0LjQsOS43LDE0LjQsOS42LDE0LjR6Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+") + .plan--yellow + +colorPlans($yellow, #EFD97C) + .list--check li:before + background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjAgMjAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDIwIDIwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGcgaWQ9IlBhc3NlZCI+Cgk8Zz4KCQk8cGF0aCBmaWxsPSIjRTVDMDI1IiBkPSJNOS42LDE0LjRjLTAuMSwwLTAuMy0wLjEtMC40LTAuMWwtNC0zLjNjLTAuMy0wLjItMC4zLTAuNi0wLjEtMC45UzUuOCw5LjgsNi4xLDEwbDMuNCwyLjhsNC45LTcuNQoJCQlDMTQuNiw1LDE1LDQuOSwxNS4zLDUuMWMwLjMsMC4yLDAuNCwwLjYsMC4yLDAuOWwtNS4zLDguMUMxMC4xLDE0LjMsOS45LDE0LjQsOS42LDE0LjRDOS43LDE0LjQsOS43LDE0LjQsOS42LDE0LjR6Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+") + + + .plan-title, + .plan-pricing, + .plan-cta + text-align: center + + .plan-title + font-size: 1.9em + font-weight: 300 + + .plan-pricing + .price + font-size: 20px + .timeframe + font-size: 16px + + .plan-cta-btn + display: inline-block + padding: 0.4em 0.9em + border-radius: 2px + font-size: 22px + text-decoration: none + transition: background-color 200ms ease, border-color 200ms ease + + .section--enterprise + .inner + display: flex + flex-flow: column wrap + justify-content: space-between + @media #{$medium-up} + flex-flow: row wrap + + .section-text + text-align: center + @media #{$medium-up} + text-align: right + + .section-image + img + display: block + width: 320px + height: auto + margin: auto + @media #{$medium-up} + img + width: 100% + + .section-text, + .section-image + flex: 0 0 47% + + .list--faq + display: flex + flex-flow: row wrap + justify-content: space-between + padding: 0 + margin: 3em 0 0 + list-style: none + li + flex: 0 0 100% + padding: 1em 1.5em 1.7em + margin-bottom: 2em + border: solid 1px #E8E8E8 + @media #{$medium-up} + flex: 0 0 48% + + .faq-text + @include linkStyle + margin: 0 + font-size: 16px + a + display: inline-block diff --git a/app/styles/app/pages/team.sass b/app/styles/app/pages/team.sass new file mode 100644 index 00000000..afd11db3 --- /dev/null +++ b/app/styles/app/pages/team.sass @@ -0,0 +1,64 @@ +.landing-pro + .team-header + margin-bottom: 7em + + .team-flags + margin-top: 10px + img + width: 30px + height: 20px + .flag-divider + color: #d9d9d9 + padding: 0 5px + + .team-image + width: 113px + height: 113px + border-radius: 50% + margin: auto + overflow: hidden + img + display: block + width: 100% + height: 100% + .back + display: none + &:hover + .back + display: block + .front + display: none + + .team-member + flex: 0 0 195px + padding: 0 + margin-bottom: 4em + text-align: center + display: flex + flex-flow: column wrap + + .list--team + display: flex + flex-wrap: wrap + justify-content: space-around + list-style: none + margin: 0 + padding: 0 + @media (min-width: 1000px) + justify-content: flex-start + + .team-name + font-weight: 300 + font-size: 20px + margin: 10px 0 0 0 + line-height: 1.5 + .team-title + font-style: italic + line-height: 1.5 + margin: 0 + font-size: 16px + flex-grow: 1 + + .team-handle + font-size: 16px + margin: 0 diff --git a/app/styles/app/popup.sass b/app/styles/app/popup.sass index 18b663d8..466fc04c 100644 --- a/app/styles/app/popup.sass +++ b/app/styles/app/popup.sass @@ -9,7 +9,7 @@ color: #565656 z-index: 99 background-color: $white - @extend %border-radius-4px + border-radius: 4px .help display: inline-block diff --git a/app/templates/components/team-member.hbs b/app/templates/components/team-member.hbs new file mode 100644 index 00000000..f18e3a7d --- /dev/null +++ b/app/templates/components/team-member.hbs @@ -0,0 +1,14 @@ +
+ + +
+

{{member.name}}

+

{{member.title}}

+{{#if member.handle}} +

@{{member.handle}}

+{{/if}} +
+ flag {{member.nationality}} + / + flag {{member.country}} +
diff --git a/app/templates/home-pro.hbs b/app/templates/home-pro.hbs new file mode 100644 index 00000000..d6e6494a --- /dev/null +++ b/app/templates/home-pro.hbs @@ -0,0 +1,91 @@ +
+
+
+
+

Build apps
with confidence

+

Focus on writing code. Let Travis CI take care
of running your tests and deploying your apps.

+ Start your free trial +
+
+ +
+
+
+
+
+

Some pretty awesome companies and projects are a few of our users

+
    +
  • Zendesk logo
  • +
  • Heroku logo
  • +
  • Engine Yard logo
  • +
  • BitTorrent logo
  • +
  • Moz logo
  • +
+
+
+
+
+
+
    +
  • + +

    Get set up in seconds

    +

    Login with GitHub, tell Travis CI to test a project, and then push to GitHub. Could it be any simpler!

    +
  • +
  • + +

    Supports your platform

    +

    Many databases and services are pre-installed and can be enabled in your build configuration.

    +
  • +
  • + +

    Test your pull requests

    +

    Make sure every Pull Request to your project is tested before it's merged.

    +
  • +
  • + +

    Deploy anywhere

    +

    Updating staging or production as soon as your tests pass has never been easier!

    +
  • +
+
+
+

Features created to help your projects and teams

+
    +
  • Watch your tests as they run
  • +
  • Keep your config with your code
  • +
  • Slack, HipChat, Emails and more
  • +
  • A clean VM for every build
  • +
  • Run your tests in parallel
  • +
  • Linux and Mac (and iOS) supported
  • +
  • Great API and command line tool
  • +
+
+
+
+
+
+

Supported languages

+

These are just a few of our most popular languages, check out the full list in our docs.

+ +
+
+
+
+

Interested in running your
private projects with Travis CI?

+ Start your free trial +
+
+
\ No newline at end of file diff --git a/app/templates/layouts/landing-page.hbs b/app/templates/layouts/landing-page.hbs index d0ff4bd8..69757bde 100644 --- a/app/templates/layouts/landing-page.hbs +++ b/app/templates/layouts/landing-page.hbs @@ -6,6 +6,6 @@ {{yield}} -