diff --git a/bower.json b/bower.json index cd8cfd5cf3..1f833167fc 100644 --- a/bower.json +++ b/bower.json @@ -26,6 +26,7 @@ "moment": "~2.10.2", "angular-bootstrap": "~0.13.0", "ramda": "~0.13.0", - "jshint": "~2.7.0" + "jshint": "~2.7.0", + "lightbox2": "~2.8.1" } } diff --git a/client/less/main.less b/client/less/main.less index 6d6260aac7..e21023754e 100644 --- a/client/less/main.less +++ b/client/less/main.less @@ -212,6 +212,10 @@ ul { font-size: 24px; } +.map-p { + font-size: 20px; +} + .large-li { font-size: 24px; } @@ -282,6 +286,10 @@ ul { margin-bottom: -6px; } +.lb-container { + padding: 0px; +} + .btn-social { width: 250px; margin: auto; diff --git a/seed/challenges/bootstrap.json b/seed/challenges/bootstrap.json index 78116911dd..fb4f864474 100644 --- a/seed/challenges/bootstrap.json +++ b/seed/challenges/bootstrap.json @@ -347,7 +347,7 @@ "description": [ "Normally, your button elements are only as wide as the text that they contain. By making them block elements, your button will stretch to fill your page's entire horizontal space.", "This image illustrates the difference between inline elements and block-level elements:", - "\"An", + "\"An", "Note that these buttons still need the btn class.", "Add Bootstrap's btn-block class to your Bootstrap button." ], @@ -700,7 +700,7 @@ "description": [ "Bootstrap uses a responsive grid system, which makes it easy to put elements into rows and specify each element's relative width. Most of Bootstrap's classes can be applied to a div element.", "Here's a diagram of how Bootstrap's 12-column grid layout works:", - "\"an", + "\"an", "Note that in this illustration, the col-md-* class is being used. Here, md means medium, and * is a number specifying how many columns wide the element should be. In this case, the column width of an element on a medium-sized screen, such as a laptop, is being specified.", "In the Cat Photo App that we're building, we'll use col-xs-*, where xs means extra small (like an extra-small mobile phone screen), and * is the number of columns specifying how many columns wide the element should be.", "Put the Like, Info and Delete buttons side-by-side by nesting all three of them within one <div class=\"row\"> element, then each of them within a <div class=\"col-xs-4\"> element.", @@ -895,7 +895,7 @@ "description": [ "You can use spans to create inline elements. Remember when we used the btn-block class to make the button fill the entire row?", "This image illustrates the difference between inline elements and block-level elements:", - "\"An", + "\"An", "By using the span element, you can put several elements together, and even style different parts of the same element differently.", "Nest the word \"love\" in your \"Things cats love\" element below within a span element. Then give that span the class text-danger to make the text red.", "Here's how you would do this with the \"Top 3 things cats hate\" element: <p>Top 3 things cats <span class = \"text-danger\">hate</span></p>" @@ -984,7 +984,7 @@ "We will make a simple heading for our Cat Photo App by putting them in the same row.", "Remember, Bootstrap uses a responsive grid system, which makes it easy to put elements into rows and specify each element's relative width. Most of Bootstrap's classes can be applied to a div element.", "Here's a diagram of how Bootstrap's 12-column grid layout works:", - "\"an", + "\"an", "Note that in this illustration, the col-md-* class is being used. Here, md means medium, and * is a number specifying how many columns wide the element should be. In this case, the column width of an element on a medium-sized screen, such as a laptop, is being specified.", "In the Cat Photo App that we're building, we'll use col-xs-*, where xs means extra small (like an extra-small mobile phone screen), and * is the number of columns specifying how many columns wide the element should be.", "Nest your first image and your h2 element within a single <div class=\"row\"> element. Nest your h2 text within a <div class=\"col-xs-8\"> and your image in a <div class=\"col-xs-4\"> so that they are on the same line.", diff --git a/seed/challenges/html5-and-css.json b/seed/challenges/html5-and-css.json index fcd98e70f5..1871088811 100644 --- a/seed/challenges/html5-and-css.json +++ b/seed/challenges/html5-and-css.json @@ -866,7 +866,8 @@ "description": [ "CSS borders have properties like style, color and width.", "For example, if we wanted to create a red, 5 pixel border around an HTML element, we could use this class: <style> .thin-red-border { border-color: red; border-width: 5px; border-style: solid; } </style>.", - "Create a class called thick-green-border that puts a 10-pixel-wide green border with a style of solid around an HTML element, and apply that class to your cat photo. You can apply multiple classes to elements by separating them with a space within the class attribute. For example, <element class=\"class1 class2\"></element>" + "Create a class called thick-green-border that puts a 10-pixel-wide green border with a style of solid around an HTML element, and apply that class to your cat photo.", + "Remember that you can apply multiple classes to an element by separating each class with a space within its class attribute. For example: <img class=\"class1 class2\">" ], "tests": [ "assert($(\"img\").hasClass(\"smaller-image\"), 'Your img element should have the class smaller-image.')", @@ -1060,7 +1061,7 @@ "description": [ "a elements, also known as anchor elements, are used to link to content outside of the current page.", "Here's a diagram of an a element. In this case, the a element is used in the middle of a paragraph element, which means the link will appear in the middle of a sentence.", - "\"a", + "\"a", "Here's an example: <p>Here's a <a href=\"http://freecodecamp.com\"> link to Free Code Camp</a> for you to follow.</p>.", "Create an a element that links to http://freecatphotoapp.com and has \"cat photos\" as its anchor text." ], @@ -1130,7 +1131,7 @@ "difficulty": 1.23, "description": [ "Again, here's a diagram of an a element for your reference:", - "\"a", + "\"a", "Here's an example: <p>Here's a <a href=\"http://freecodecamp.com\"> link to Free Code Camp</a> for you to follow.</p>.", "Nesting just means putting one element inside of another element.", "Now nest your existing a element within a new p element so that the surrounding paragraph says \"click here for cat photos\", but where only \"cat photos\" is a link, and the rest of the text is rest is plain text." diff --git a/seed/challenges/jquery.json b/seed/challenges/jquery.json index 5d39cce4e5..815265450a 100644 --- a/seed/challenges/jquery.json +++ b/seed/challenges/jquery.json @@ -58,7 +58,7 @@ "This is important because without your document ready function, your code may run before your HTML is rendered, which would cause bugs.", "Now let's write our first jQuery statement. All jQuery functions start with a $, usually referred to as a dollar sign operator, or simply as bling.", "jQuery often selects an HTML element with a selector, then does something to that element.", - "For example, let's make all of your button elements bounce. Just add this code inside your document ready function: $(\"button\").addClass(\"animated bounce\").", + "For example, let's make all of your button elements bounce. Just add this code inside your document ready function: $(\"button\").addClass(\"animated bounce\").", "Note that we've already included both the jQuery library and the Animate.css library in your code editor. So you are using jQuery to apply the Animate.css bounce class to your button elements." ], "tests": [ diff --git a/server/views/challengeMap/show.jade b/server/views/challengeMap/show.jade index fc984e1c23..05d591b010 100644 --- a/server/views/challengeMap/show.jade +++ b/server/views/challengeMap/show.jade @@ -1,11 +1,5 @@ extends ../layout block content - .panel - h3.text-center Your friends won't hear about our open source community unless you tell them. - .row - .col-xs-12.col-sm-10.col-sm-offset-1.col-md-8.col-md-offset-2 - a.btn.btn-lg.btn-primary.btn-block(href="https://www.facebook.com/sharer/sharer.php?u=http://freecodecamp.com" target='_blank') Share our open source community on Facebook - .spacer .panel.panel-info .panel-heading.text-center h1 Challenge Map @@ -15,7 +9,7 @@ block content 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-10.col-md-offset-1 + .col-xs-12.col-md-8.col-md-offset-2 h2.text-center span.text-primary #{camperCount}   | campers have joined our community @@ -23,7 +17,7 @@ block content | since we launched   span.text-primary #{daysRunning}   | days ago. - .spacer + a.btn.btn-lg.signup-btn.btn-block(href="https://www.facebook.com/sharer/sharer.php?u=http://freecodecamp.com" target='_blank') Share our open source community on Facebook and help us grow. .row .col-xs-12.col-sm-8.col-sm-offset-2 h3 800 Hours of Practice: @@ -32,22 +26,22 @@ block content .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.large-p.negative-10 + .hidden-xs.col-sm-3.col-md-2.text-primary.ion-checkmark-circled.padded-ionic-icon.text-center.map-p.negative-10 .col-xs-12.col-sm-9.col-md-10 - li.large-p.faded.negative-10 + li.map-p.faded.negative-10 a(href='#' + challengeBlock.dashedName)= challengeBlock.name 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-12.col-sm-9.col-md-10 - li.large-p.negative-10 + li.map-p.negative-10 a(href='#' + challengeBlock.dashedName)= challengeBlock.name else .hidden-xs.col-sm-3.col-md-2 span.negative-10 .col-xs-12.col-sm-9.col-md-10 - li.large-p.negative-10 + li.map-p.negative-10 a(href='#' + challengeBlock.dashedName)= challengeBlock.name .row @@ -57,21 +51,21 @@ block content | : ol .row - .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.large-p.negative-10 + .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.large-p.negative-10 100-hour Nonprofit Project + li.map-p.negative-10 100-hour Nonprofit Project .row - .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.large-p.negative-10 + .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.large-p.negative-10 200-hour Nonprofit Project #1 + li.map-p.negative-10 200-hour Nonprofit Project #1 .row - .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.large-p.negative-10 + .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.large-p.negative-10 200-hour Nonprofit Project #2 + li.map-p.negative-10 200-hour Nonprofit Project #2 .row - .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.large-p.negative-10 + .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.large-p.negative-10 300-hour Nonprofit Project + li.map-p.negative-10 300-hour Nonprofit Project hr for challengeBlock in blocks @@ -88,9 +82,9 @@ block content for challenge in challengeBlock.challenges if challenge.completed .row - .hidden-xs.col-sm-3.col-md-2.text-primary.ion-checkmark-circled.padded-ionic-icon.text-center.large-p.negative-10 + .hidden-xs.col-sm-3.col-md-2.text-primary.ion-checkmark-circled.padded-ionic-icon.text-center.map-p.negative-10 .col-xs-12.col-sm-9.col-md-10 - li.faded.large-p.negative-10 + li.faded.map-p.negative-10 a(href="/challenges/#{challenge.dashedName}") span.capitalize= challenge.type + ': ' span= challenge.title @@ -102,7 +96,7 @@ block content .hidden-xs.col-sm-3.col-md-2 span.negative-10 .col-xs-12.col-sm-9.col-md-10 - li.large-p.negative-10 + li.map-p.negative-10 a(href="/challenges/#{challenge.dashedName}") span.capitalize= challenge.type + ': ' span= challenge.title diff --git a/server/views/partials/scripts.jade b/server/views/partials/scripts.jade index 537aee61ec..26ecf3e6bf 100644 --- a/server/views/partials/scripts.jade +++ b/server/views/partials/scripts.jade @@ -28,6 +28,7 @@ script. script(src=rev('/js', 'main.js')) script(src="/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js") script(src="/bower_components/ramda/dist/ramda.min.js") +script(src='/bower_components/lightbox2/dist/js/lightbox.min.js') script. (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), diff --git a/server/views/partials/stylesheets.jade b/server/views/partials/stylesheets.jade index 609bf882b5..da6d843378 100644 --- a/server/views/partials/stylesheets.jade +++ b/server/views/partials/stylesheets.jade @@ -1,4 +1,5 @@ link(rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Lato:400|Inconsolata") link(rel="stylesheet" type="text/css" href="/bower_components/cal-heatmap/cal-heatmap.css") link(rel='stylesheet', href='/bower_components/font-awesome/css/font-awesome.min.css') +link(rel='stylesheet', href='/bower_components/lightbox2/dist/css/lightbox.css') link(rel='stylesheet', href=rev('/css', 'main.css'))