diff --git a/client/less/lib/bootstrap/variables.less b/client/less/lib/bootstrap/variables.less index 8b8fefa81d..37c18097bc 100755 --- a/client/less/lib/bootstrap/variables.less +++ b/client/less/lib/bootstrap/variables.less @@ -26,7 +26,7 @@ //## Settings for some of the most global styles. //** Background color for ``. -@body-bg: #457E86; +@body-bg: #fefefe; //** Global text color on ``. @text-color: @gray-dark; diff --git a/client/less/main.less b/client/less/main.less index 0780dde86e..a513acf2e1 100644 --- a/client/less/main.less +++ b/client/less/main.less @@ -42,13 +42,17 @@ html { overflow-x: hidden; } -input[type=checkbox] { - /* Double-sized Checkboxes */ - -ms-transform: scale(2); /* IE */ - -moz-transform: scale(2); /* FF */ - -webkit-transform: scale(2); /* Safari and Chrome */ - -o-transform: scale(2); /* Opera */ - padding: 10px; +//input[type=checkbox] { +// /* Double-sized Checkboxes */ +// -ms-transform: scale(2); /* IE */ +// -moz-transform: scale(2); /* FF */ +// -webkit-transform: scale(2); /* Safari and Chrome */ +// -o-transform: scale(2); /* Opera */ +// padding: 10px; +//} + +.btn-group { + border-color: @brand-primary; } body.full-screen-body-background { @@ -327,13 +331,13 @@ ul { } .navbar { - background-color: #4a2b0f; + background-color: #215f1e; } .navbar-nav > li > a { color: @gray-lighter; &:hover { - color: #4a2b0f; + color: #215f1e; } } @@ -441,7 +445,7 @@ thead { } .navbar-right { - background-color: #4a2b0f; + background-color: #215f1e; text-align: center; } @@ -586,7 +590,7 @@ thead { width: 100%; height: 50px; text-align: center; - background-color: #4a2b0f; + background-color: #215f1e; padding: 12px; bottom: 0; left: 0; @@ -601,7 +605,7 @@ thead { padding-top: 14px; padding-bottom: 12px; &:hover { - color: #4a2b0f; + color: #215f1e; background-color: @gray-lighter; text-decoration: none; } diff --git a/server/views/account/show.jade b/server/views/account/show.jade index 545d2341e4..d24e22b261 100644 --- a/server/views/account/show.jade +++ b/server/views/account/show.jade @@ -4,185 +4,181 @@ block content script. var challengeName = 'Profile View'; if (user && user.username === username) - .panel.panel-info - .panel-heading.text-center Update your code portfolio - .panel-body - .row - .col-xs-12 - if (!user.isGithubCool) - a.btn.btn-lg.btn-block.btn-github.btn-link-social(href='/link/github') - i.fa.fa-github - | Link my GitHub to unlock my portfolio - else - a.btn.btn-lg.btn-block.btn-github.btn-link-social(href='/link/github') - i.fa.fa-github - | Update my name, username, and location with data from my GitHub account - if (!user.twitter) - a.btn.btn-lg.btn-block.btn-twitter.btn-link-social(href='/link/twitter') - i.fa.fa-twitter - | Add my Twitter to my portfolio - if (!user.facebook) - a.btn.btn-lg.btn-block.btn-facebook.btn-link-social(href='/link/facebook') - i.fa.fa-facebook - | Add my Facebook to my portfolio - if (!user.linkedin) - a.btn.btn-lg.btn-block.btn-linkedin.btn-link-social(href='/link/linkedin') - i.fa.fa-linkedin - | Add my LinkedIn to my portfolio - if (!user.google) - a.btn.btn-lg.btn-block.btn-google-plus.btn-link-social(href='/link/google') - i.fa.fa-google-plus - | Add my Google+ to my portfolio + h1.text-center Update your code portfolio + .row + .col-xs-12 + if (!user.isGithubCool) + a.btn.btn-lg.btn-block.btn-github.btn-link-social(href='/link/github') + i.fa.fa-github + | Link my GitHub to unlock my portfolio + else + a.btn.btn-lg.btn-block.btn-github.btn-link-social(href='/link/github') + i.fa.fa-github + | Update my portfolio from GitHub + if (!user.twitter) + a.btn.btn-lg.btn-block.btn-twitter.btn-link-social(href='/link/twitter') + i.fa.fa-twitter + | Add my Twitter to my portfolio + if (!user.facebook) + a.btn.btn-lg.btn-block.btn-facebook.btn-link-social(href='/link/facebook') + i.fa.fa-facebook + | Add my Facebook to my portfolio + if (!user.linkedin) + a.btn.btn-lg.btn-block.btn-linkedin.btn-link-social(href='/link/linkedin') + i.fa.fa-linkedin + | Add my LinkedIn to my portfolio + if (!user.google) + a.btn.btn-lg.btn-block.btn-google-plus.btn-link-social(href='/link/google') + i.fa.fa-google-plus + | Add my Google+ to my portfolio - .panel.panel-info - .panel-heading.text-center - h1 #{username}'s code portfolio - .panel-body + h1.text-center #{username}'s code portfolio + hr + .row + .col-xs-12.col-sm-10.col-sm-offset-1.col-md-8.col-md-offset-2.text-center + if picture + img.img-center.img-responsive.public-profile-img(src=picture) + else + img.img-center.img-responsive.public-profile-img(src='https://s3.amazonaws.com/freecodecamp/camper-image-placeholder.png') + h1.text-center.negative-5.profile-social-icons + if (twitter) + a.fa.fa-twitter-square.text-primary(title="@#{username}'s Twitter Profile", href='https://twitter.com/' + twitter, target='_blank') + if (github) + a.fa.fa-github-square.text-primary(title="@#{username}'s GitHub Profile", href=github, target='_blank') + if (linkedin) + a.fa.fa-linkedin-square.text-primary(title="@#{username}'s LinkedIn Profile", href=linkedin, target='_blank') + if (facebook) + a.fa.fa-facebook-square.text-primary(title="@#{username}'s Facebook Profile", href='https://facebook.com/' + facebook, target='_blank') + if (google) + a.fa.fa-google-plus-square.text-primary(title="@#{username}'s Google Profile", href='https://plus.google.com/' + google, target='_blank') + h1.flat-top.wrappable= name + h1.flat-top.wrappable= location + h1.flat-top.text-primary= "[ " + (progressTimestamps.length) + " ]" + if pledge + .spacer + h4 + | This camper has committed to giving $#{pledge.amount} to + a(href='#{pledge.donateUrl}?ref=freecodecamp.com' target='_blank') #{pledge.displayName} + | each month until they have completed their #{pledge.goal}. + .spacer + if isFrontEndCert + a.btn.btn-primary(href='/' + username + '/front-end-certification') View My Front End Development Certification + if isDataVisCert + .button-spacer + a.btn.btn-success(href='/' + username + '/data-visualization-certification') View My Data Visualization Certification + if isBackEndCert + .button-spacer + a.btn.btn-success(href='/' + username + '/back-end-certification') View My Back End Development Certification + //if (user && user.username !== username) + // a.btn.btn-lg.btn-block.btn-twitter.btn-link-social(href='/leaderboard/add?username=#{username}') + // i.fa.fa-plus-square + // | Add them to my personal leaderboard + .spacer + .col-md-12 + #cal-heatmap.hidden-xs.hidden-sm.d3-centered + script. + $(document).ready(function () { + var cal = new CalHeatMap(); + var calendar = !{JSON.stringify(calender)}; + /* + var estUTCOffset = -5; + // moment returns the utc offset in minutes + var userUTCOffset = moment().utcOffset() / 60; + var secondsToOffset = + (estUTCOffset - userUTCOffset) * 3600; + var offsetCalendar = {}; + for (var prop in calendar) { + if (calendar.hasOwnProperty(prop)) { + var offsetProp = prop + secondsToOffset; + offsetCalendar[offsetProp] = calendar[prop]; + } + } + */ + cal.init({ + itemSelector: "#cal-heatmap", + domain: "month", + subDomain: "x_day", + domainGutter: 10, + data: calendar, + cellSize: 15, + align: 'center', + cellRadius: 3, + cellPadding: 2, + tooltip: true, + range: 6, + start: new Date().setDate(new Date().getDate() - 150), + legendColors: ["#cccccc", "#215f1e"], + legend: [1, 2, 3], + label: { + position: "top" + } + }); + }); .row - .col-xs-12.col-sm-10.col-sm-offset-1.col-md-8.col-md-offset-2.text-center - if picture - img.img-center.img-responsive.public-profile-img(src=picture) - else - img.img-center.img-responsive.public-profile-img(src='https://s3.amazonaws.com/freecodecamp/camper-image-placeholder.png') - h1.text-center.negative-5.profile-social-icons - if (twitter) - a.fa.fa-twitter-square.text-primary(title="@#{username}'s Twitter Profile", href='https://twitter.com/' + twitter, target='_blank') - if (github) - a.fa.fa-github-square.text-primary(title="@#{username}'s GitHub Profile", href=github, target='_blank') - if (linkedin) - a.fa.fa-linkedin-square.text-primary(title="@#{username}'s LinkedIn Profile", href=linkedin, target='_blank') - if (facebook) - a.fa.fa-facebook-square.text-primary(title="@#{username}'s Facebook Profile", href='https://facebook.com/' + facebook, target='_blank') - if (google) - a.fa.fa-google-plus-square.text-primary(title="@#{username}'s Google Profile", href='https://plus.google.com/' + google, target='_blank') - h1.flat-top.wrappable= name - h1.flat-top.wrappable= location - h1.flat-top.text-primary= "[ " + (progressTimestamps.length) + " ]" - if pledge - .spacer - h4 - | This camper has committed to giving $#{pledge.amount} to - a(href='#{pledge.donateUrl}?ref=freecodecamp.com' target='_blank') #{pledge.displayName} - | each month until they have completed their #{pledge.goal}. - .spacer - if isFrontEndCert - a.btn.btn-primary(href='/' + username + '/front-end-certification') View My Front End Development Certification - if isDataVisCert - .button-spacer - a.btn.btn-success(href='/' + username + '/data-visualization-certification') View My Data Visualization Certification - if isBackEndCert - .button-spacer - a.btn.btn-success(href='/' + username + '/back-end-certification') View My Back End Development Certification - //if (user && user.username !== username) - // a.btn.btn-lg.btn-block.btn-twitter.btn-link-social(href='/leaderboard/add?username=#{username}') - // i.fa.fa-plus-square - // | Add them to my personal leaderboard - - .spacer - .col-md-12 - #cal-heatmap.hidden-xs.hidden-sm.d3-centered - script. - $(document).ready(function () { - var cal = new CalHeatMap(); - var calendar = !{JSON.stringify(calender)}; - /* - var estUTCOffset = -5; - // moment returns the utc offset in minutes - var userUTCOffset = moment().utcOffset() / 60; - var secondsToOffset = - (estUTCOffset - userUTCOffset) * 3600; - var offsetCalendar = {}; - for (var prop in calendar) { - if (calendar.hasOwnProperty(prop)) { - var offsetProp = prop + secondsToOffset; - offsetCalendar[offsetProp] = calendar[prop]; - } - } - */ - cal.init({ - itemSelector: "#cal-heatmap", - domain: "month", - subDomain: "x_day", - domainGutter: 10, - data: calendar, - cellSize: 15, - align: 'center', - cellRadius: 3, - cellPadding: 2, - tooltip: true, - range: 6, - start: new Date().setDate(new Date().getDate() - 150), - legendColors: ["#cccccc", "#215f1e"], - legend: [1, 2, 3], - label: { - position: "top" - } - }); - }); - .row - .hidden-xs.col-sm-12.text-center - .row.text-primary - h4.col-sm-6.text-right Longest Streak: #{longestStreak} #{longestStreak === 1 ? ' day' : ' days'} - h4.col-sm-6.text-left Current Streak: #{currentStreak} #{currentStreak === 1 ? ' day' : ' days'} + .hidden-xs.col-sm-12.text-center + .row.text-primary + h4.col-sm-6.text-right Longest Streak: #{longestStreak} #{longestStreak === 1 ? ' day' : ' days'} + h4.col-sm-6.text-left Current Streak: #{currentStreak} #{currentStreak === 1 ? ' day' : ' days'} - if (user && user.username == username || !isLocked) - if (baseAndZip.length > 0) - .col-sm-12 - table.table.table-striped - thead - tr - th.col-xs-6 Projects - th.col-xs-3.hidden-xs Completed - th.col-xs-3.hidden-xs Link - for challenge in baseAndZip - tr - td.col-xs-4.hidden-xs - a(href='/challenges/' + challenge.name, target='_blank')= challenge.name - td.col-xs-2.hidden-xs= challenge.completedDate ? moment(challenge.completedDate, 'x').format("MMM DD, YYYY") : 'Not Available' - td.col-xs-6.hidden-xs - a(href=challenge.solution, target='_blank') View my project - td.col-xs-12.visible-xs - a(href=challenge.solution, target='_blank')=challenge.name - if (bonfires.length > 0) - .col-sm-12 - table.table.table-striped - thead - tr - th.col-xs-6 Bonfires - th.col-xs-3.hidden-xs Completed - th.col-xs-3.hidden-xs Solution - for bonfire in bonfires - tr - td.col-xs-6.hidden-xs= bonfire.name - td.col-xs-3.hidden-xs= bonfire.completedDate ? moment(bonfire.completedDate, 'x').format("MMM DD, YYYY") : 'Not Available' - td.col-xs-3.hidden-xs - a(href='/challenges/' + bonfire.name + '?solution=' + encodeURIComponent(encodeFcc(bonfire.solution)), target='_blank') View my solution - td.col-xs-12.visible-xs - a(href='/challenges/' + bonfire.name + '?solution=' + encodeURIComponent(encodeFcc(bonfire.solution)), target='_blank')= bonfire.name - if (waypoints.length > 0) - .col-sm-12 - table.table.table-striped - thead - tr - th.col-xs-6 Waypoints - th.col-xs-3.hidden-xs Completed - th.col-xs-3.hidden-xs Solution - for challenge in waypoints - tr - td.col-xs-6.hidden-xs= challenge.name - td.col-xs-3.hidden-xs= challenge.completedDate ?moment(challenge.completedDate, 'x').format("MMM DD, YYYY") : 'Not Available' - td.col-xs-3.hidden-xs - if (challenge.solution) - a(href='/challenges/' + challenge.name + '?solution=' + encodeURIComponent(encodeFcc(challenge.solution)), target='_blank') View my solution - else - a(href='/challenges/' + challenge.name) View this challenge - td.col-xs-12.visible-xs - if (challenge.solution) - a(href='/challenges/' + challenge.name + '?solution=' + encodeURIComponent(encodeFcc(challenge.solution)), target='_blank')= challenge.name - else - a(href='/challenges/' + challenge.name)= challenge.name + if (user && user.username == username || !isLocked) + if (baseAndZip.length > 0) + .col-sm-12 + table.table.table-striped + thead + tr + th.col-xs-6 Projects + th.col-xs-3.hidden-xs Completed + th.col-xs-3.hidden-xs Link + for challenge in baseAndZip + tr + td.col-xs-4.hidden-xs + a(href='/challenges/' + challenge.name, target='_blank')= challenge.name + td.col-xs-2.hidden-xs= challenge.completedDate ? moment(challenge.completedDate, 'x').format("MMM DD, YYYY") : 'Not Available' + td.col-xs-6.hidden-xs + a(href=challenge.solution, target='_blank') View my project + td.col-xs-12.visible-xs + a(href=challenge.solution, target='_blank')=challenge.name + if (bonfires.length > 0) + .col-sm-12 + table.table.table-striped + thead + tr + th.col-xs-6 Bonfires + th.col-xs-3.hidden-xs Completed + th.col-xs-3.hidden-xs Solution + for bonfire in bonfires + tr + td.col-xs-6.hidden-xs= bonfire.name + td.col-xs-3.hidden-xs= bonfire.completedDate ? moment(bonfire.completedDate, 'x').format("MMM DD, YYYY") : 'Not Available' + td.col-xs-3.hidden-xs + a(href='/challenges/' + bonfire.name + '?solution=' + encodeURIComponent(encodeFcc(bonfire.solution)), target='_blank') View my solution + td.col-xs-12.visible-xs + a(href='/challenges/' + bonfire.name + '?solution=' + encodeURIComponent(encodeFcc(bonfire.solution)), target='_blank')= bonfire.name + if (waypoints.length > 0) + .col-sm-12 + table.table.table-striped + thead + tr + th.col-xs-6 Waypoints + th.col-xs-3.hidden-xs Completed + th.col-xs-3.hidden-xs Solution + for challenge in waypoints + tr + td.col-xs-6.hidden-xs= challenge.name + td.col-xs-3.hidden-xs= challenge.completedDate ?moment(challenge.completedDate, 'x').format("MMM DD, YYYY") : 'Not Available' + td.col-xs-3.hidden-xs + if (challenge.solution) + a(href='/challenges/' + challenge.name + '?solution=' + encodeURIComponent(encodeFcc(challenge.solution)), target='_blank') View my solution + else + a(href='/challenges/' + challenge.name) View this challenge + td.col-xs-12.visible-xs + if (challenge.solution) + a(href='/challenges/' + challenge.name + '?solution=' + encodeURIComponent(encodeFcc(challenge.solution)), target='_blank')= challenge.name + else + a(href='/challenges/' + challenge.name)= challenge.name if (user && user.username === username) +<<<<<<< b157fa3095437bb5d39b91e23581589744f6aca0 .panel.panel-info .panel-heading.text-center Manage your account .panel-body @@ -242,3 +238,63 @@ block content button.btn.btn-danger.btn-block(type='submit') span.ion-trash-b | I am 100% sure I want to delete my account and all of my progress +======= + h1.text-center Manage your account + hr + .col-xs-12 + a.btn.btn-lg.btn-block.btn-warning.btn-link-social(href='/logout') + span.ion-android-exit + | Sign me out of Free Code Camp + .col-xs-12 + a.btn.btn-lg.btn-block.btn-primary.btn-link-social(href='mailto:team@freecodecamp.com') + span.ion-email + | Email us at team@freecodecamp.com + if (!user.isLocked) + .col-xs-12 + a.btn.btn-lg.btn-block.btn-info.btn-link-social(href='/toggle-lockdown-mode') + span.ion-locked + | Hide all my solutions from other people + br + | (this will disable your certificates) + else + .col-xs-12 + a.btn.btn-lg.btn-block.btn-info.btn-link-social(href='/toggle-lockdown-mode') + span.ion-unlocked + | Let other people see all my solutions + br + | (this will enable your certificates) + .col-xs-12 + a.btn.btn-lg.btn-block.btn-success.btn-link-social(href='/commit') + span.ion-edit + | Edit my pledge + .col-xs-12 + a.btn.btn-lg.btn-block.btn-danger.btn-link-social.confirm-deletion + span.ion-trash-b + | Delete my Free Code Camp account + script. + $('.confirm-deletion').on("click", function () { + $('#modal-dialog').modal('show'); + }); + #modal-dialog.modal.animated.wobble + .modal-dialog + .modal-content + .modal-header + a.close(href='#', data-dismiss='modal', aria-hidden='true') × + h3 You don't really want to delete your account, do you? + .modal-body + p This will really delete all your data, including all your progress, news stories and brownie points. + p We won't be able to recover any of it for you later, even if you change your mind. + p If there's something we could do better, send us an email instead and we'll do our best:   + a(href="mailto:team@freecodecamp.com") team@freecodecamp.com + | . + .modal-footer + a.btn.btn-success.btn-block(href='#', data-dismiss='modal', aria-hidden='true') + span.ion-happy + | Nevermind, I don't want to delete all of my progress + .spacer + form(action='/account/delete', method='POST') + input(type='hidden', name='_csrf', value=_csrf) + button.btn.btn-danger.btn-block(type='submit') + span.ion-trash-b + | I am 100% sure I want to delete my account and all of my progress +>>>>>>> start simplifying views diff --git a/server/views/challengeMap/show.jade b/server/views/challengeMap/show.jade index fc5f39d629..9f7b3929e5 100644 --- a/server/views/challengeMap/show.jade +++ b/server/views/challengeMap/show.jade @@ -1,201 +1,199 @@ extends ../layout block content - .panel.panel-info - .panel-heading.text-center - h1 Challenge Map - .panel-body - if (Math.random() > 0.999) - img.img-responsive.img-center.border-radius-5(src='https://s3.amazonaws.com/freecodecamp/wide-social-banner-dino.png') - audio(autoplay src='https://s3.amazonaws.com/freecodecamp/t-rex-roar.mp3') - else - img.img-responsive.img-center.border-radius-5(src='https://s3.amazonaws.com/freecodecamp/wide-social-banner.png') - .col-xs-12.col-md-8.col-md-offset-2 - h2 - table.population-table.img-center - tr - td Established:  - td - span.text-primary #{daysRunning}  - | days ago - tr - td Population:    - td - span.text-primary #{camperCount}  - | campers - tr - td Completed:    - td - span.text-primary #{globalCompletedCount}  - | challenges + h1.text-center Challenge Map + hr + if (Math.random() > 0.999) + img.img-responsive.img-center.border-radius-5(src='https://s3.amazonaws.com/freecodecamp/wide-social-banner-dino.png') + audio(autoplay src='https://s3.amazonaws.com/freecodecamp/t-rex-roar.mp3') + else + img.img-responsive.img-center.border-radius-5(src='https://s3.amazonaws.com/freecodecamp/wide-social-banner.png') + .col-xs-12.col-md-8.col-md-offset-2 + h2 + table.population-table.img-center + tr + td Established:  + td + span.text-primary #{daysRunning}  + | days ago + tr + td Population:    + td + span.text-primary #{camperCount}  + | campers + tr + td Completed:    + td + span.text-primary #{globalCompletedCount}  + | challenges - .spacer - if (user && user.progressTimestamps.length > 100) - .row - #map-notice.col-xs-12.col-md-8.col-md-offset-2.hidden - h2.text-center Reddit or not, here we come - img.thumbnail.img-center.img-responsive(src="http://i.imgur.com/lyd0bfM.jpg") - h4.text-center Come ask questions and share your thoughts with our entire open source community on our subreddit. - a.button.btn.btn-block.btn-primary(href="https://reddit.com/r/freecodecamp" target="_blank") Check it out - .button-spacer - .text-center - a#hide-map-notice-button(href='#') Hide this forever - .spacer - - ul - for superBlock in superBlocks - h2= superBlock.name - - var i = 0 - for challengeBlock in superBlock.blocks - - i++ - .row - if (user) - if (challengeBlock.completed === 100) - .hidden-xs.col-sm-3.col-md-2.text-primary.ion-checkmark-circled.padded-ionic-icon.text-center.map-p.negative-10 - .col-xs-1.col-sm-1.col-md-1.map-row-numbers.negative-5 - span.map-p.negative-10 #{i}. - .col-xs-11.col-sm-8.col-md-9 - li.map-p.faded.negative-10 - a(href='#' + challengeBlock.dashedName)= challengeBlock.name - if challengeBlock.markNew - span.text-info.small     - strong - em NEW - if challengeBlock.isComingSoon - span.text-info.small     - strong - em Coming Soon - else - .hidden-xs.col-sm-3.col-md-2 - .progress.progress-bar-padding.text-center.thin-progress-bar - .progress-bar(role='progressbar', aria-valuenow=(challengeBlock.completed), aria-valuemin='0', aria-valuemax='100', style='width: ' + challengeBlock.completed + '%;') - .col-xs-1.col-sm-1.col-md-1.map-row-numbers.negative-5 - span.map-p #{i}. - .col-xs-11.col-sm-8.col-md-9 - li.map-p.negative-10 - a(href='#' + challengeBlock.dashedName)= challengeBlock.name - if challengeBlock.markNew - span.text-info.small     - strong - em NEW - if challengeBlock.isComingSoon - span.text-info.small     - strong - em Coming Soon - else - .hidden-xs.col-sm-3.col-md-2 - .col-xs-1.col-sm-1.col-md-1.map-row-numbers - span.map-p.negative-10 #{i}. - .col-xs-10.col-sm-8.col-md-9 - span.map-p.negative-10 - a(href='#' + challengeBlock.dashedName)= challengeBlock.name - if challengeBlock.markNew - span.text-info.small     - strong - em NEW - if challengeBlock.isComingSoon - span.text-info.small     - strong - em Coming Soon - h2 Full Stack Development Certification - .row - .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 - .col-xs-12.col-sm-9.col-md-10 - li.map-p.negative-10 Greenfield Nonprofit Project 1 - .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 - .col-xs-12.col-sm-9.col-md-10 - li.map-p.negative-10 Greenfield Nonprofit Project 2 - .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 - .col-xs-12.col-sm-9.col-md-10 - li.map-p.negative-10 Legacy Nonprofit Project 1 - .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 - .col-xs-12.col-sm-9.col-md-10 - li.map-p.negative-10 Legacy Nonprofit Project 2 - .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 - .col-xs-12.col-sm-9.col-md-10 - li.map-p.negative-10 Claim your Full Stack Development Certification - - h2 Coding Interview Preparation - .row - .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 - .col-xs-12.col-sm-9.col-md-10 - li.map-p.negative-10 Whiteboard Coding Interview Training - .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 - .col-xs-12.col-sm-9.col-md-10 - li.map-p.negative-10 Critical Thinking Interview Training - .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 - .col-xs-12.col-sm-9.col-md-10 - li.map-p.negative-10 Mock Interview 1 - .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 - .col-xs-12.col-sm-9.col-md-10 - li.map-p.negative-10 Mock Interview 2 - .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 - .col-xs-12.col-sm-9.col-md-10 - li.map-p.negative-10 Mock Interview 3 - - hr - - for superBlock, index in superBlocks - for challengeBlock in superBlock.blocks - .row - a(href='#' name=challengeBlock.dashedName) - .spacer.negative-55 - - .row - .hidden-xs.col-sm-3.col-md-2 - h3.text-primary.text-right.nowrap - i.fa.fa-clock-o - = challengeBlock.time - .col-xs-12.col-sm-9.col-md-10 - h3 #{challengeBlock.name}   - - - var i = 0 - for challenge in challengeBlock.challenges - - i++ - .row - if challenge.completed - .hidden-xs.col-sm-3.col-md-2.text-primary.ion-checkmark-circled.padded-ionic-icon.text-center.map-p.negative-10 - .col-xs-1.col-sm-1.col-md-1.map-row-numbers - span.map-p.negative-10 #{i}. - .col-xs-10.col-sm-8.col-md-9 - span.faded.map-p.negative-10 - a(href="/challenges/#{challenge.dashedName}") - span.capitalize= challenge.type + ': ' - span= challenge.title - span.sr-only= " Complete" - - else - .hidden-xs.col-sm-3.col-md-2 - span.negative-10 - .col-xs-1.col-sm-1.col-md-1.map-row-numbers - span.map-p.negative-10 #{i}. - .col-xs-10.col-sm-8.col-md-9 - span.map-p.negative-10 - a(href="/challenges/#{challenge.dashedName}" class=challenge.isComingSoon ? 'disabled' : '') - span.capitalize= challenge.type + ': ' - span= challenge.title - span.sr-only= " Incomplete" - if challenge.markNew - span.text-info.small     - strong - em NEW - if challengeBlock.isComingSoon - span.text-info.small     - strong - em Coming Soon + .spacer + if (user && user.progressTimestamps.length > 100) + .row + #map-notice.col-xs-12.col-md-8.col-md-offset-2.hidden + h2.text-center Reddit or not, here we come + img.thumbnail.img-center.img-responsive(src="http://i.imgur.com/lyd0bfM.jpg") + h4.text-center Come ask questions and share your thoughts with our entire open source community on our subreddit. + a.button.btn.btn-block.btn-primary(href="https://reddit.com/r/freecodecamp" target="_blank") Check it out + .button-spacer + .text-center + a#hide-map-notice-button(href='#') Hide this forever + .spacer + ul + for superBlock in superBlocks + h2= superBlock.name + - var i = 0 + for challengeBlock in superBlock.blocks + - i++ + .row + if (user) if (challengeBlock.completed === 100) - .button-spacer - .row - .col-xs-12.col-sm-8.col-md-6.col-sm-offset-3.col-md-offset-2.hidden - a.btn.btn-lg.btn-block.signup-btn.map-challenge-block-share Section complete. Share your code portfolio with your friends. - .hidden(id="#{challengeBlock.name}") + .hidden-xs.col-sm-3.col-md-2.text-primary.ion-checkmark-circled.padded-ionic-icon.text-center.map-p.negative-10 + .col-xs-1.col-sm-1.col-md-1.map-row-numbers.negative-5 + span.map-p.negative-10 #{i}. + .col-xs-11.col-sm-8.col-md-9 + li.map-p.faded.negative-10 + a(href='#' + challengeBlock.dashedName)= challengeBlock.name + if challengeBlock.markNew + span.text-info.small     + strong + em NEW + if challengeBlock.isComingSoon + span.text-info.small     + strong + em Coming Soon + else + .hidden-xs.col-sm-3.col-md-2 + .progress.progress-bar-padding.text-center.thin-progress-bar + .progress-bar(role='progressbar', aria-valuenow=(challengeBlock.completed), aria-valuemin='0', aria-valuemax='100', style='width: ' + challengeBlock.completed + '%;') + .col-xs-1.col-sm-1.col-md-1.map-row-numbers.negative-5 + span.map-p #{i}. + .col-xs-11.col-sm-8.col-md-9 + li.map-p.negative-10 + a(href='#' + challengeBlock.dashedName)= challengeBlock.name + if challengeBlock.markNew + span.text-info.small     + strong + em NEW + if challengeBlock.isComingSoon + span.text-info.small     + strong + em Coming Soon + else + .hidden-xs.col-sm-3.col-md-2 + .col-xs-1.col-sm-1.col-md-1.map-row-numbers + span.map-p.negative-10 #{i}. + .col-xs-10.col-sm-8.col-md-9 + span.map-p.negative-10 + a(href='#' + challengeBlock.dashedName)= challengeBlock.name + if challengeBlock.markNew + span.text-info.small     + strong + em NEW + if challengeBlock.isComingSoon + span.text-info.small     + strong + em Coming Soon + h2 Full Stack Development Certification + .row + .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 + .col-xs-12.col-sm-9.col-md-10 + li.map-p.negative-10 Greenfield Nonprofit Project 1 + .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 + .col-xs-12.col-sm-9.col-md-10 + li.map-p.negative-10 Greenfield Nonprofit Project 2 + .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 + .col-xs-12.col-sm-9.col-md-10 + li.map-p.negative-10 Legacy Nonprofit Project 1 + .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 + .col-xs-12.col-sm-9.col-md-10 + li.map-p.negative-10 Legacy Nonprofit Project 2 + .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 + .col-xs-12.col-sm-9.col-md-10 + li.map-p.negative-10 Claim your Full Stack Development Certification - if (index < superBlocks.length - 1) - .spacer - hr - .spacer + h2 Coding Interview Preparation + .row + .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 + .col-xs-12.col-sm-9.col-md-10 + li.map-p.negative-10 Whiteboard Coding Interview Training + .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 + .col-xs-12.col-sm-9.col-md-10 + li.map-p.negative-10 Critical Thinking Interview Training + .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 + .col-xs-12.col-sm-9.col-md-10 + li.map-p.negative-10 Mock Interview 1 + .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 + .col-xs-12.col-sm-9.col-md-10 + li.map-p.negative-10 Mock Interview 2 + .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 + .col-xs-12.col-sm-9.col-md-10 + li.map-p.negative-10 Mock Interview 3 + + hr + + for superBlock, index in superBlocks + for challengeBlock in superBlock.blocks + .row + a(href='#' name=challengeBlock.dashedName) + .spacer.negative-55 + + .row + .hidden-xs.col-sm-3.col-md-2 + h3.text-primary.text-right.nowrap + i.fa.fa-clock-o + = challengeBlock.time + .col-xs-12.col-sm-9.col-md-10 + h3 #{challengeBlock.name}   + + - var i = 0 + for challenge in challengeBlock.challenges + - i++ + .row + if challenge.completed + .hidden-xs.col-sm-3.col-md-2.text-primary.ion-checkmark-circled.padded-ionic-icon.text-center.map-p.negative-10 + .col-xs-1.col-sm-1.col-md-1.map-row-numbers + span.map-p.negative-10 #{i}. + .col-xs-10.col-sm-8.col-md-9 + span.faded.map-p.negative-10 + a(href="/challenges/#{challenge.dashedName}") + span.capitalize= challenge.type + ': ' + span= challenge.title + span.sr-only= " Complete" + + else + .hidden-xs.col-sm-3.col-md-2 + span.negative-10 + .col-xs-1.col-sm-1.col-md-1.map-row-numbers + span.map-p.negative-10 #{i}. + .col-xs-10.col-sm-8.col-md-9 + span.map-p.negative-10 + a(href="/challenges/#{challenge.dashedName}" class=challenge.isComingSoon ? 'disabled' : '') + span.capitalize= challenge.type + ': ' + span= challenge.title + span.sr-only= " Incomplete" + if challenge.markNew + span.text-info.small     + strong + em NEW + if challengeBlock.isComingSoon + span.text-info.small     + strong + em Coming Soon + + if (challengeBlock.completed === 100) + .button-spacer + .row + .col-xs-12.col-sm-8.col-md-6.col-sm-offset-3.col-md-offset-2.hidden + a.btn.btn-lg.btn-block.signup-btn.map-challenge-block-share Section complete. Share your code portfolio with your friends. + .hidden(id="#{challengeBlock.name}") + + if (index < superBlocks.length - 1) + .spacer + hr + .spacer script. var username = !{JSON.stringify(user && user.username || '')}; diff --git a/server/views/coursewares/showBonfire.jade b/server/views/coursewares/showBonfire.jade index a3a584d876..c7d508d882 100644 --- a/server/views/coursewares/showBonfire.jade +++ b/server/views/coursewares/showBonfire.jade @@ -9,7 +9,7 @@ block content .col-md-4.col-lg-3 .scroll-locker(id = "scroll-locker") .innerMarginFix(style=' width: 99%') - #testCreatePanel.well + #testCreatePanel h3.text-center.negative-10= name if (isCompleted) |   @@ -36,13 +36,13 @@ block content |   Run tests (ctrl + enter) .button-spacer .btn-group.input-group.btn-group-justified - label.btn.btn-success#trigger-reset-modal + label.btn.btn-primary.btn-primary-ghost#trigger-reset-modal i.fa.fa-refresh |   Reset - label.btn.btn-success#challenge-help-btn + label.btn.btn-primary.btn-primary-ghost#challenge-help-btn i.fa.fa-medkit |   Help - label.btn.btn-success#trigger-issue-modal + label.btn.btn-primary.btn-primary-ghost#trigger-issue-modal i.fa.fa-bug |   Bug if (!user) diff --git a/server/views/coursewares/showHTML.jade b/server/views/coursewares/showHTML.jade index 163c813689..9b3e558ef3 100644 --- a/server/views/coursewares/showHTML.jade +++ b/server/views/coursewares/showHTML.jade @@ -8,33 +8,33 @@ block content .col-md-3.col-lg-3 .scroll-locker(id = "scroll-locker") .innerMarginFix(style = "width: 99%;") - .well - .row - .col-xs-12 - h3.text-center.negative-10= name - if (isCompleted) - |   - i.ion-checkmark-circled.text-primary(title="Completed") - .bonfire-instructions - for sentence in details - p.wrappable.negative-10!= sentence - .negative-bottom-margin-30 + .row + .col-xs-12 + h3.text-center.negative-10= name + if (isCompleted) + |   + i.ion-checkmark-circled.text-primary(title="Completed") + hr + .bonfire-instructions + for sentence in details + p.wrappable.negative-10!= sentence + .negative-bottom-margin-30 label.negative-10.btn.btn-primary.btn-lg.btn-block#submitButton i.fa.fa-play |   Run tests (ctrl + enter) .button-spacer .btn-group.input-group.btn-group-justified - label.btn.btn-success#trigger-reset-modal + label.btn.btn-primary.btn-primary-ghost#trigger-reset-modal i.fa.fa-refresh |   Reset - label.btn.btn-success.hidden-sm.hidden-md.hidden-lg + label.btn.btn-primary.btn-primary-ghost.hidden-sm.hidden-md.hidden-lg a(href='//gitter.im/freecodecamp/help') i.fa.fa-medkit |   Help - label.btn.btn-success.hidden-xs#challenge-help-btn + label.btn.btn-primary.btn-primary-ghost.hidden-xs#challenge-help-btn i.fa.fa-medkit |   Help - label.btn.btn-success#trigger-issue-modal + label.btn.btn-primary.btn-primary-ghost#trigger-issue-modal i.fa.fa-bug |   Bug script. diff --git a/server/views/coursewares/showStep.jade b/server/views/coursewares/showStep.jade index 53a120143e..96bda010c0 100644 --- a/server/views/coursewares/showStep.jade +++ b/server/views/coursewares/showStep.jade @@ -3,9 +3,9 @@ block content .row .col-md-8.col-md-offset-2 for step, index in description - .thumbnail.challenge-step(class=index !== 0 ? 'hidden': '') + .challenge-step(class=index !== 0 ? 'hidden': '') a(href=step[0] data-lightbox='img-enlarge') - img.gif-block.img-center.img-responsive.thumbnail(src='#{step[0]}' alt='#{step[1]}') + img.gif-block.img-center.img-responsive(src='#{step[0]}' alt='#{step[1]}') .caption p.large-p!= step[2] .challenge-button-block @@ -15,7 +15,7 @@ block content if index === 0 .col-sm-5.hidden-xs   else - .btn.btn-warning.col-sm-5.col-xs-12.challenge-step-btn-prev(id='#{index - 1}') Go to my previous step + .btn.btn-primary.btn-primary-ghost.col-sm-5.col-xs-12.challenge-step-btn-prev(id='#{index - 1}') Go to my previous step .challenge-step-counter.large-p.col-sm-2.col-xs-12.text-center (#{index + 1} / #{description.length}) if index + 1 === description.length .btn.btn-primary.col-sm-5.col-xs-12.challenge-step-btn-finish(id='last' class=step[3] && !isCompleted ? 'disabled' : '') Finish challenge diff --git a/server/views/coursewares/showZiplineOrBasejump.jade b/server/views/coursewares/showZiplineOrBasejump.jade index 03c1ebb19e..5d14b605d6 100644 --- a/server/views/coursewares/showZiplineOrBasejump.jade +++ b/server/views/coursewares/showZiplineOrBasejump.jade @@ -3,15 +3,15 @@ block content .row .col-md-4.bonfire-top h1.text-center= name - .well - h4 - ol - for step, index in details - .row.checklist-element(id="#{dashedName + index}") - .col-xs-3.col-sm-1.col-md-2.padded-ionic-icon.text-center - input(type='checkbox' class='challenge-list-checkbox') - .col-xs-9.col-sm-11.col-md-10 - li.step-text.wrappable!= step + hr + h4 + ol + for step, index in details + .row.checklist-element(id="#{dashedName + index}") + .col-xs-3.col-sm-1.col-md-2.padded-ionic-icon.text-center + input(type='checkbox' class='challenge-list-checkbox') + .col-xs-9.col-sm-11.col-md-10 + li.step-text.wrappable!= step .col-md-8 .embed-responsive.embed-responsive-16by9 iframe.embed-responsive-item(src='//player.vimeo.com/video/#{video}') @@ -24,10 +24,10 @@ block content a.btn.btn-big.btn-primary.btn-block(href='/challenges/next-challenge?id=' + challengeId) Go to my next challenge (ctrl + enter) .button-spacer .btn-group.input-group.btn-group-justified - .btn.btn-success.btn-big#challenge-help-btn + .btn.btn-primary.btn-primary-ghost.btn-big#challenge-help-btn i.fa.fa-medkit |   Help - .btn.btn-success.btn-big#trigger-issue-modal + .btn.btn-primary.btn-primary-ghost.btn-big#trigger-issue-modal i.fa.fa-bug |   Bug if (!user) diff --git a/server/views/home.jade b/server/views/home.jade index 68b69c5c03..84bc7e2639 100644 --- a/server/views/home.jade +++ b/server/views/home.jade @@ -1,107 +1,106 @@ extends layout block content - .jumbotron - .text-center - h1.landing-heading Learn to code and help nonprofits. - .spacer - .row + .text-center + h1.landing-heading Learn to code and help nonprofits. + .spacer + .row + .col-xs-12.col-sm-12.col-md-3 + h3.nowrap Get connected + img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_connect.svg.gz', alt='Get great references and connections to start your software engineer career') + p.landing-p Join a community of 100,000+ motivated people. + .col-xs-12.col-sm-12.col-md-3 + h3.nowrap Learn JavaScript + img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_learn.svg.gz', alt='Learn to code and learn full stack JavaScript') + p.landing-p Work together on Full Stack JavaScript coding challenges. + .col-xs-12.col-sm-12.col-md-3 + h3.nowrap Build your portfolio + img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_portfolio.svg.gz', alt='Build a portfolio of apps for nonprofits') + p.landing-p Build apps that solve real problems for real people. + .col-xs-12.col-sm-12.col-md-3 + h3.nowrap Help nonprofits + img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_nonprofits.svg.gz', alt='Help empower nonprofits with code') + p.landing-p Give nonprofits a boost by empowering them with code. + .big-break + .row + .col-xs-12.col-sm-8.col-sm-offset-2 + a.btn.btn-cta.signup-btn.btn-block(href="/signin") Start learning to code (it's free) + .button-spacer + a.btn.btn-lg.btn-primary.btn-primary-ghost.btn-block(href="/nonprofits") My nonprofit needs coding help + .spacer + h2 As featured in: + img.img-center.img-responsive(src='https://s3.amazonaws.com/freecodecamp/as-seen-on.png') + .spacer + hr + .spacer + h2 Launch your career as a software engineer: + .spacer + .row + .col-xs-12.col-sm-12.col-md-4 + img.img-responsive.testimonial-image.img-center(src="http://i.imgur.com/nsvNixW.jpg", alt="Meta's testimonial image") + p.testimonial-copy Through Free Code Camp, I built a robust and highly functional web app for a nonprofit. This led me to getting a fantastic job. + h3 - Meta Hirschl + .col-xs-12.col-sm-12.col-md-4 + img.img-responsive.testimonial-image.img-center(src="http://i.imgur.com/QPpjPac.jpg", alt="Brian's testimonial image") + p.testimonial-copy Free Code Camp's a great way for disabled veterans like me to retrain. I'm receiving engineering job offers, and I haven't even finished yet. + h3 - Brian Grant + .col-xs-12.col-sm-12.col-md-4 + img.img-responsive.testimonial-image.img-center(src="http://i.imgur.com/wjlDigg.jpg", alt="Maxim Orlov's testimonial image") + p.testimonial-copy I started Free Code Camp with zero knowledge of web development. 6 months later, I landed my first job as a back end engineer. + h3 - Maxim Orlov + .spacer + .row + .col-xs-12.col-sm-8.col-sm-offset-2 + a.btn.btn-lg.btn-primary.btn-primary-ghost.btn-block(href='/stories') Hear from more of our campers + .spacer + .spacer + hr + .spacer + h2 Skills you'll learn: + .spacer + .row + .text-center.negative-35 .col-xs-12.col-sm-12.col-md-3 - h3.nowrap Get connected - img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_connect.svg.gz', alt='Get great references and connections to start your software engineer career') - p.landing-p Join a community of 100,000+ motivated people. + .landing-skill-icon.ion-social-html5 + h2.black-text HTML5 .col-xs-12.col-sm-12.col-md-3 - h3.nowrap Learn JavaScript - img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_learn.svg.gz', alt='Learn to code and learn full stack JavaScript') - p.landing-p Work together on Full Stack JavaScript coding challenges. + .landing-skill-icon.ion-social-css3 + h2.black-text CSS3 .col-xs-12.col-sm-12.col-md-3 - h3.nowrap Build your portfolio - img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_portfolio.svg.gz', alt='Build a portfolio of apps for nonprofits') - p.landing-p Build apps that solve real problems for real people. + .landing-skill-icon.ion-social-javascript + h2.black-text JavaScript .col-xs-12.col-sm-12.col-md-3 - h3.nowrap Help nonprofits - img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_nonprofits.svg.gz', alt='Help empower nonprofits with code') - p.landing-p Give nonprofits a boost by empowering them with code. - .big-break - .row - .col-xs-12.col-sm-8.col-sm-offset-2 - a.btn.btn-cta.signup-btn.btn-block(href="/signin") Start learning to code (it's free) - .button-spacer - a.btn.btn-lg.btn-primary.btn-primary-ghost.btn-block(href="/nonprofits") My nonprofit needs coding help - .spacer - h2 As featured in: - img.img-center.img-responsive(src='https://s3.amazonaws.com/freecodecamp/as-seen-on.png') - .spacer - hr - .spacer - h2 Launch your career as a software engineer: - .spacer - .row - .col-xs-12.col-sm-12.col-md-4 - img.img-responsive.testimonial-image.img-center(src="http://i.imgur.com/nsvNixW.jpg", alt="Meta's testimonial image") - p.testimonial-copy Through Free Code Camp, I built a robust and highly functional web app for a nonprofit. This led me to getting a fantastic job. - h3 - Meta Hirschl - .col-xs-12.col-sm-12.col-md-4 - img.img-responsive.testimonial-image.img-center(src="http://i.imgur.com/QPpjPac.jpg", alt="Brian's testimonial image") - p.testimonial-copy Free Code Camp's a great way for disabled veterans like me to retrain. I'm receiving engineering job offers, and I haven't even finished yet. - h3 - Brian Grant - .col-xs-12.col-sm-12.col-md-4 - img.img-responsive.testimonial-image.img-center(src="http://i.imgur.com/wjlDigg.jpg", alt="Maxim Orlov's testimonial image") - p.testimonial-copy I started Free Code Camp with zero knowledge of web development. 6 months later, I landed my first job as a back end engineer. - h3 - Maxim Orlov - .spacer - .row - .col-xs-12.col-sm-8.col-sm-offset-2 - a.btn.btn-lg.btn-primary.btn-primary-ghost.btn-block(href='/stories') Hear from more of our campers - .spacer - .spacer - hr - .spacer - h2 Skills you'll learn: - .spacer - .row - .text-center.negative-35 - .col-xs-12.col-sm-12.col-md-3 - .landing-skill-icon.ion-social-html5 - h2.black-text HTML5 - .col-xs-12.col-sm-12.col-md-3 - .landing-skill-icon.ion-social-css3 - h2.black-text CSS3 - .col-xs-12.col-sm-12.col-md-3 - .landing-skill-icon.ion-social-javascript - h2.black-text JavaScript - .col-xs-12.col-sm-12.col-md-3 - .landing-skill-icon.fa.fa-database.font-awesome-padding - h2.black-text Databases - .col-xs-12.col-sm-12.col-md-3 - .landing-skill-icon.ion-social-github - h2.black-text Git & GitHub - .col-xs-12.col-sm-12.col-md-3 - .landing-skill-icon.ion-social-nodejs - h2.black-text Node.js - .col-xs-12.col-sm-12.col-md-3 - .landing-skill-icon.custom-landing-skill-icon - img(src='https://s3.amazonaws.com/freecodecamp/react.svg') - h2.black-text React.js - .col-xs-12.col-sm-12.col-md-3 - .landing-skill-icon.custom-landing-skill-icon - img(src='https://s3.amazonaws.com/freecodecamp/d3-logo.svg') - h2.black-text D3.js - .spacer - hr - .spacer - .col-xs-offset-0.col-sm-offset-1.text-left - h2 Here's why you should join our open source community right now: - ul.large-li - li.ion-code   You'll get help in real time from our community chat rooms. - li.ion-code   You'll meet up with other coders in your city. - li.ion-code   You'll learn to code at your own pace, in your browser or on your phone. - li.ion-code   You'll work through our focused, interactive courses and tutorials. - li.ion-code   You'll learn state-of-the-art full stack JavaScript technologies. - li.ion-code   You'll build projects that help nonprofits carry out their missions more effectively. - li.ion-code   You'll assemble a portfolio of real apps used by real people. - .big-break - .row - .col-xs-12.col-sm-8.col-sm-offset-2 - a.btn.btn-cta.signup-btn.btn-block(href="/signin") Learn to code today (it's free) - script. - challengeName = 'Home' + .landing-skill-icon.fa.fa-database.font-awesome-padding + h2.black-text Databases + .col-xs-12.col-sm-12.col-md-3 + .landing-skill-icon.ion-social-github + h2.black-text Git & GitHub + .col-xs-12.col-sm-12.col-md-3 + .landing-skill-icon.ion-social-nodejs + h2.black-text Node.js + .col-xs-12.col-sm-12.col-md-3 + .landing-skill-icon.custom-landing-skill-icon + img(src='https://s3.amazonaws.com/freecodecamp/react.svg') + h2.black-text React.js + .col-xs-12.col-sm-12.col-md-3 + .landing-skill-icon.custom-landing-skill-icon + img(src='https://s3.amazonaws.com/freecodecamp/d3-logo.svg') + h2.black-text D3.js + .spacer + hr + .spacer + .col-xs-offset-0.col-sm-offset-1.text-left + h2 Here's why you should join our open source community right now: + ul.large-li + li.ion-code   You'll get help in real time from our community chat rooms. + li.ion-code   You'll meet up with other coders in your city. + li.ion-code   You'll learn to code at your own pace, in your browser or on your phone. + li.ion-code   You'll work through our focused, interactive courses and tutorials. + li.ion-code   You'll learn state-of-the-art full stack JavaScript technologies. + li.ion-code   You'll build projects that help nonprofits carry out their missions more effectively. + li.ion-code   You'll assemble a portfolio of real apps used by real people. + .big-break + .row + .col-xs-12.col-sm-8.col-sm-offset-2 + a.btn.btn-cta.signup-btn.btn-block(href="/signin") Learn to code today (it's free) + script. + challengeName = 'Home' diff --git a/server/views/stories/index.jade b/server/views/stories/index.jade index 196c1bcd3d..56958a7a08 100644 --- a/server/views/stories/index.jade +++ b/server/views/stories/index.jade @@ -11,22 +11,22 @@ block content script. var challengeName = 'Camper News'; var page = !{JSON.stringify(page)}; - .panel.panel-info - .panel-heading.text-center Camper News - .panel-body - include news-nav + h1.text-center Camper News + hr + .spacer + include news-nav + .spacer + if (page === 'hot') + include hot-stories + if (page === 'submit') + if (user) + include preliminary-submit + else .spacer - if (page === 'hot') - include hot-stories - if (page === 'submit') - if (user) - include preliminary-submit - else - .spacer - .text-center - a.btn.btn-cta.signup-btn.btn-primary(href="/login") Sign in to post your story (it's free) - .spacer - if (page === 'storySubmission') - include submit-story - if (page === 'show') - include show + .text-center + a.btn.btn-cta.signup-btn.btn-primary(href="/login") Sign in to post your story (it's free) + .spacer + if (page === 'storySubmission') + include submit-story + if (page === 'show') + include show diff --git a/server/views/stories/news-nav.jade b/server/views/stories/news-nav.jade index c15c30b5d4..d78c17aab5 100644 --- a/server/views/stories/news-nav.jade +++ b/server/views/stories/news-nav.jade @@ -7,11 +7,17 @@ .spacer .col-xs-12.col-sm-3 span - a.btn.btn-primary.btn-big.btn-block.btn-responsive(href='/stories/submit' class="#{ page === 'hot' ? '' : 'hidden' }") Submit + a.btn.btn-primary.btn-big.btn-block.btn-responsive(href='/stories/submit' class="#{ page === 'hot' ? '' : 'hidden' }") Submit a link span a.btn.btn-success.btn-big.btn-block.btn-responsive(href='/news/' class="#{ (page !== 'hot') ? '' : 'hidden' }") All .visible-xs .button-spacer + .col-xs-12.col-sm-9 + .input-group + input#searchArea.big-text-field.field-responsive.form-control(type='text', placeholder='Search our links') + span.input-group-btn + button#searchbutton.btn.btn-big.btn-primary.btn-responsive(type='button') Search + .spacer #search-results