Browse files

New site implementation. Basic styles, logo, draft profile page. Stub…

…bed scripts
  • Loading branch information...
1 parent 9b422f6 commit b86fb96288669dc850522409bdf220278d40d91b @jossmac jossmac committed Nov 19, 2013
View
17 .editorconfig
@@ -0,0 +1,17 @@
+# This file is for unifying the coding style for different editors and IDEs
+# editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = false
+insert_final_newline = true
+
+[*.jade]
+indent_style = tab
+indent_size = 4
+
+[*.less]
+indent_style = tab
+indent_size = 2
View
BIN public/images/blueprintbg.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
37 public/images/logo.svg
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="129.995px" height="116.996px" viewBox="0 0 129.995 116.996" enable-background="new 0 0 129.995 116.996"
+ xml:space="preserve">
+<path fill-rule="evenodd" clip-rule="evenodd" fill="#1B7EBA" d="M0,2h129.995v114.996l-65.318-10L0,116.996V2z"/>
+<path fill-rule="evenodd" clip-rule="evenodd" fill="#2697DE" d="M0,0h129.995v114.996l-65.318-10L0,114.996V0z"/>
+<g>
+ <g>
+ <path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M51.5,14.282C63.246,28.77,67.021,58.46,67.021,58.46
+ c9.977-5.826,19.051-16.643,19.051-16.643S76.888,21.495,51.5,14.282z M49.076,55.034c6.228-6.756,9.341-22.019,9.341-22.019
+ s-8.998-6.271-22.567-6.608C47.851,38.223,49.076,55.034,49.076,55.034z M87.868,41.001c0,0,13.076,8.599,18.154,16.995
+ c0,0,7.293-9.97,10.525-21.859C106.286,32.576,87.868,41.001,87.868,41.001z M16.557,33.812
+ c10.898,6.138,13.734,19.611,13.734,19.611c8.945-6.666,8.971-16.604,8.971-16.604S26.82,32.089,16.557,33.812z"/>
+ </g>
+</g>
+<g>
+ <path fill="#FFFFFF" d="M25.707,82.589l1.108-1.288c1.288,1.468,3.384,2.905,6.26,2.905c4.074,0,5.242-2.276,5.242-3.983
+ c0-5.871-11.981-2.816-11.981-9.795c0-3.265,2.936-5.332,6.56-5.332c2.965,0,5.242,1.049,6.77,2.816l-1.138,1.258
+ c-1.438-1.737-3.475-2.516-5.721-2.516c-2.666,0-4.672,1.527-4.672,3.684c0,5.122,11.981,2.307,11.981,9.765
+ c0,2.576-1.707,5.661-7.099,5.661C29.72,85.764,27.234,84.416,25.707,82.589z"/>
+ <path fill="#FFFFFF" d="M44.07,89.628c0.33,0.149,0.898,0.239,1.258,0.239c0.958,0,1.618-0.39,2.217-1.768l1.138-2.575
+ l-6.141-14.587h1.737l5.272,12.64l5.212-12.64h1.767l-7.488,17.642c-0.779,1.827-2.007,2.696-3.684,2.696
+ c-0.509,0-1.168-0.09-1.558-0.21L44.07,89.628z"/>
+ <path fill="#FFFFFF" d="M70.431,85.404v-2.307c-1.019,1.498-2.876,2.666-5.033,2.666c-3.834,0-6.439-2.936-6.439-7.578
+ c0-4.582,2.605-7.607,6.439-7.607c2.067,0,3.894,1.048,5.033,2.695v-7.848h1.587v19.979H70.431z M70.431,81.779v-7.158
+ c-0.839-1.408-2.727-2.636-4.763-2.636c-3.205,0-5.062,2.696-5.062,6.2s1.857,6.17,5.062,6.17
+ C67.704,84.355,69.592,83.158,70.431,81.779z"/>
+ <path fill="#FFFFFF" d="M75.226,83.787l1.857-3.235c0.778,0.749,1.797,1.438,3.175,1.438c1.887,0,3.115-1.289,3.115-3.205V65.426
+ h4.283v13.419c0,4.702-2.966,6.919-7.039,6.919C78.58,85.764,76.663,85.195,75.226,83.787z"/>
+ <path fill="#FFFFFF" d="M90.802,82.589l2.337-3.325c1.407,1.468,3.594,2.727,6.35,2.727c2.366,0,3.475-1.049,3.475-2.217
+ c0-3.475-11.502-1.049-11.502-8.566c0-3.325,2.876-6.081,7.578-6.081c3.175,0,5.812,0.958,7.788,2.786l-2.366,3.175
+ c-1.617-1.498-3.774-2.187-5.812-2.187c-1.797,0-2.815,0.779-2.815,1.977c0,3.145,11.473,1.019,11.473,8.477
+ c0,3.654-2.636,6.41-7.998,6.41C95.445,85.764,92.689,84.476,90.802,82.589z"/>
+</g>
+</svg>
View
170 public/styles/session.less
@@ -0,0 +1,170 @@
+// Session
+// ------------------------------
+
+
+
+
+
+// Core variables and mixins
+@import "bootstrap/variables.less";
+@import "bootstrap/mixins.less";
+@import "site/variables.less";
+
+// Reset
+@import "bootstrap/normalize.less";
+@import "bootstrap/scaffolding.less";
+
+@import "bootstrap/buttons.less";
+@import "bootstrap/utilities.less";
+@import "bootstrap/alerts.less";
+
+@import "site/entypo.less";
+
+
+
+
+
+// Alignment
+.text-left { text-align: left; }
+.text-right { text-align: right; }
+.text-center { text-align: center; }
+
+
+
+
+
+// Type
+p {
+ margin: 0 0 1em;
+}
+h2, .h2 {
+ font-size: 18px;
+ line-height: 24px;
+ font-weight: 200;
+ margin: 20px 0;
+
+ @media (min-width: @screen-sm-min) {
+ font-size: 24px;
+ line-height: 30px;
+ }
+}
+
+
+
+
+// LAYOUT
+// ------------------------------
+.main-body {
+ padding-left: 30px;
+ padding-right: 30px;
+}
+@media (min-width: @screen-sm-min) {
+ .main-body {
+ margin-left: auto;
+ margin-right: auto;
+ width: 440px;
+ }
+}
+
+
+
+// NAVBAR
+// ------------------------------
+.main-header {
+ border-top: 8px solid @brown;
+ height: 80px;
+ margin-bottom: 60px;
+ @media (min-width: @screen-md-min) {
+ height: 115px;
+ }
+}
+.navbar-logo {
+ .size(90px,80px);
+ position: absolute;
+ left: 50%;
+ margin-left: -45px;
+ top: 0;
+
+ @media (max-width: @screen-sm-max) {
+ img {
+ .size(90px,80px);
+ }
+ }
+ @media (min-width: @screen-md-min) {
+ .size(130px,115px);
+ margin-left: -65px;
+ }
+}
+
+
+
+
+// SIGN IN
+// ------------------------------
+form {
+ margin-bottom: 40px;
+}
+.form-control {
+ border-radius: 0;
+ border: 1px solid #ccc;
+ display: block;
+ padding: @padding-base-vertical @padding-base-horizontal;
+ position: relative;
+ width: 100%;
+ -webkit-appearance: none;
+
+ &:first-child {
+ .border-top-radius( 4px );
+ }
+ &:last-child {
+ .border-bottom-radius( 4px );
+ }
+
+ & + & {
+ margin-top: -1px;
+ }
+
+ // pop the focused field to the top so the border is visible
+ &:focus {
+ border-color: @link-color;
+ z-index: 1;
+ }
+
+ @media (min-width: @screen-md-min) {
+ padding: @padding-large-vertical @padding-large-horizontal;
+ }
+}
+
+.btn-submit {
+ background-color: @link-color;
+ border-color: @link-color;
+ border-bottom-color: mix(@link-color, black, 85%);
+ border-bottom-width: 2px;
+ color: white;
+ display: block;
+ margin-top: 10px;
+ padding-bottom: @padding-base-vertical;
+ padding-top: @padding-base-vertical;
+ font-weight: bold;
+ position: relative;
+ text-transform: uppercase;
+
+ @media (min-width: @screen-md-min) {
+ padding: @padding-large-vertical @padding-large-horizontal;
+ }
+
+ &:hover,
+ &:focus {
+ background-color: mix(@link-color, white, 90%);
+ border-color: @link-color;
+ border-bottom-color: mix(@link-color, black, 90%);
+ color: white;
+ outline: 0 none;
+ }
+ &:active {
+ box-shadow: none;
+ background-color: @link-color;
+ border-bottom-color: transparent;
+ top: 2px;
+ }
+}
View
1 public/styles/session.min.css
@@ -0,0 +1 @@
+/*! normalize.css v2.1.3 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden],template{display:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}a{background:transparent}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:0.67em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace, serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#403329;background-color:#f7f3ea}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#2697de;text-decoration:none}a:hover,a:focus{color:#68b7e8;text-decoration:underline}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.428571429;background-color:#f7f3ea;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #dcd6cd}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.428571429;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-primary{color:#fff;background-color:#2697de;border-color:#1f89cc}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#1d80be;border-color:#176596}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#2697de;border-color:#1f89cc}.btn-warning{color:#fff;background-color:#f4c600;border-color:#dbb100}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#cba500;border-color:#9d8000}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f4c600;border-color:#dbb100}.btn-danger{color:#fff;background-color:#b50001;border-color:#9c0001}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#8c0001;border-color:#5e0001}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#b50001;border-color:#9c0001}.btn-success{color:#fff;background-color:#1aaf5e;border-color:#179952}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#158b4b;border-color:#0f6435}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#1aaf5e;border-color:#179952}.btn-info{color:#fff;background-color:#00abec;border-color:#0099d3}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#008dc3;border-color:#006c95}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#00abec;border-color:#0099d3}.btn-link{color:#2697de;font-weight:normal;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#68b7e8;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-xs{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important;visibility:hidden !important}.affix{position:fixed}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#c09853}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#a47e3c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#b94a48}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#953b39}@font-face{font-family:'EntypoRegular';src:url('../fonts/entypo.eot');src:url('../fonts/entypo.eot?#iefix') format('embedded-opentype'),url('../fonts/entypo.woff') format('woff'),url('../fonts/entypo.ttf') format('truetype'),url('../fonts/entypo.svg#EntypoRegular') format('svg')}@font-face{font-family:'EntypoSocial';src:url('../fonts/entypo-social.eot');src:url('../fonts/entypo-social.eot?#iefix') format('embedded-opentype'),url('../fonts/entypo-social.woff') format('woff'),url('../fonts/entypo-social.ttf') format('truetype'),url('../fonts/entypo-social.svg#EntypoRegular') format('svg')}.entypo{display:inline-block;vertical-align:-0.125em;font-family:'EntypoRegular';font-style:normal;font-weight:normal;font-variant:normal;text-decoration:inherit;text-transform:none;speak:none;-webkit-font-smoothing:antialiased;font-size:2em;line-height:.5em}.entypo-fixed-width{text-align:center;width:.7em}.entypo-social{display:inline-block;vertical-align:-0.125em;font-family:'EntypoRegular';font-style:normal;font-weight:normal;font-variant:normal;text-decoration:inherit;text-transform:none;speak:none;-webkit-font-smoothing:antialiased;font-size:2em;line-height:.5em;font-family:'EntypoSocial'}.entypo-btn-align{margin-left:-0.075em;margin-right:0.075em}.entypo.entypo-phone:before{content:"\1F4DE"}.entypo.entypo-mobile:before{content:"\1F4F1"}.entypo.entypo-mouse:before{content:"\E789"}.entypo.entypo-address:before{content:"\E723"}.entypo.entypo-mail:before{content:"\2709"}.entypo.entypo-paper-plane:before{content:"\1F53F"}.entypo.entypo-pencil:before{content:"\270E"}.entypo.entypo-feather:before{content:"\2712"}.entypo.entypo-attach:before{content:"\1F4CE"}.entypo.entypo-inbox:before{content:"\E777"}.entypo.entypo-reply:before{content:"\E712"}.entypo.entypo-reply-all:before{content:"\E713"}.entypo.entypo-forward:before{content:"\27A6"}.entypo.entypo-user:before{content:"\1F464"}.entypo.entypo-users:before{content:"\1F465"}.entypo.entypo-add-user:before{content:"\E700"}.entypo.entypo-vcard:before{content:"\E722"}.entypo.entypo-export:before{content:"\E715"}.entypo.entypo-location:before{content:"\E724"}.entypo.entypo-map:before{content:"\E727"}.entypo.entypo-compass:before{content:"\E728"}.entypo.entypo-direction:before{content:"\27A2"}.entypo.entypo-hair-cross:before{content:"\1F3AF"}.entypo.entypo-share:before{content:"\E73C"}.entypo.entypo-shareable:before{content:"\E73E"}.entypo.entypo-heart:before{content:"\2665"}.entypo.entypo-heart-empty:before{content:"\2661"}.entypo.entypo-star:before{content:"\2605"}.entypo.entypo-star-empty:before{content:"\2606"}.entypo.entypo-thumbs-up:before{content:"\1F44D"}.entypo.entypo-thumbs-down:before{content:"\1F44E"}.entypo.entypo-chat:before{content:"\E720"}.entypo.entypo-comment:before{content:"\E718"}.entypo.entypo-quote:before{content:"\275E"}.entypo.entypo-home:before{content:"\2302"}.entypo.entypo-popup:before{content:"\E74C"}.entypo.entypo-search:before{content:"\1F50D"}.entypo.entypo-flashlight:before{content:"\1F526"}.entypo.entypo-print:before{content:"\E716"}.entypo.entypo-bell:before{content:"\1F514"}.entypo.entypo-link:before{content:"\1F517"}.entypo.entypo-flag:before{content:"\2691"}.entypo.entypo-cog:before{content:"\2699"}.entypo.entypo-tools:before{content:"\2692"}.entypo.entypo-trophy:before{content:"\1F3C6"}.entypo.entypo-tag:before{content:"\E70C"}.entypo.entypo-camera:before{content:"\1F4F7"}.entypo.entypo-megaphone:before{content:"\1F4E3"}.entypo.entypo-moon:before{content:"\263D"}.entypo.entypo-palette:before{content:"\1F3A8"}.entypo.entypo-leaf:before{content:"\1F342"}.entypo.entypo-note:before{content:"\266A"}.entypo.entypo-beamed-note:before{content:"\266B"}.entypo.entypo-new:before{content:"\1F4A5"}.entypo.entypo-graduation-cap:before{content:"\1F393"}.entypo.entypo-book:before{content:"\1F4D5"}.entypo.entypo-newspaper:before{content:"\1F4F0"}.entypo.entypo-bag:before{content:"\1F45C"}.entypo.entypo-airplane:before{content:"\2708"}.entypo.entypo-lifebuoy:before{content:"\E788"}.entypo.entypo-eye:before{content:"\E70A"}.entypo.entypo-clock:before{content:"\1F554"}.entypo.entypo-mic:before{content:"\1F3A4"}.entypo.entypo-calendar:before{content:"\1F4C5"}.entypo.entypo-flash:before{content:"\26A1"}.entypo.entypo-thunder-cloud:before{content:"\26C8"}.entypo.entypo-droplet:before{content:"\1F4A7"}.entypo.entypo-cd:before{content:"\1F4BF"}.entypo.entypo-briefcase:before{content:"\1F4BC"}.entypo.entypo-air:before{content:"\1F4A8"}.entypo.entypo-hourglass:before{content:"\23F3"}.entypo.entypo-gauge:before{content:"\1F6C7"}.entypo.entypo-language:before{content:"\1F394"}.entypo.entypo-network:before{content:"\E776"}.entypo.entypo-key:before{content:"\1F511"}.entypo.entypo-battery:before{content:"\1F50B"}.entypo.entypo-bucket:before{content:"\1F4FE"}.entypo.entypo-magnet:before{content:"\E7A1"}.entypo.entypo-drive:before{content:"\1F4FD"}.entypo.entypo-cup:before{content:"\2615"}.entypo.entypo-rocket:before{content:"\1F680"}.entypo.entypo-brush:before{content:"\E79A"}.entypo.entypo-suitcase:before{content:"\1F6C6"}.entypo.entypo-traffic-cone:before{content:"\1F6C8"}.entypo.entypo-globe:before{content:"\1F30E"}.entypo.entypo-keyboard:before{content:"\2328"}.entypo.entypo-browser:before{content:"\E74E"}.entypo.entypo-publish:before{content:"\E74D"}.entypo.entypo-progress-3:before{content:"\E76B"}.entypo.entypo-progress-2:before{content:"\E76A"}.entypo.entypo-progress-1:before{content:"\E769"}.entypo.entypo-progress-0:before{content:"\E768"}.entypo.entypo-light-down:before{content:"\1F505"}.entypo.entypo-light-up:before{content:"\1F506"}.entypo.entypo-adjust:before{content:"\25D1"}.entypo.entypo-code:before{content:"\E714"}.entypo.entypo-monitor:before{content:"\1F4BB"}.entypo.entypo-infinity:before{content:"\221E"}.entypo.entypo-light-bulb:before{content:"\1F4A1"}.entypo.entypo-credit-card:before{content:"\1F4B3"}.entypo.entypo-database:before{content:"\1F4F8"}.entypo.entypo-voicemail:before{content:"\2707"}.entypo.entypo-clipboard:before{content:"\1F4CB"}.entypo.entypo-cart:before{content:"\E73D"}.entypo.entypo-box:before{content:"\1F4E6"}.entypo.entypo-ticket:before{content:"\1F3AB"}.entypo.entypo-rss:before{content:"\E73A"}.entypo.entypo-signal:before{content:"\1F4F6"}.entypo.entypo-thermometer:before{content:"\1F4FF"}.entypo.entypo-water:before{content:"\1F4A6"}.entypo.entypo-sweden:before{content:"\F601"}.entypo.entypo-line-graph:before{content:"\1F4C8"}.entypo.entypo-pie-chart:before{content:"\25F4"}.entypo.entypo-bar-graph:before{content:"\1F4CA"}.entypo.entypo-area-graph:before{content:"\1F53E"}.entypo.entypo-lock:before{content:"\1F512"}.entypo.entypo-lock-open:before{content:"\1F513"}.entypo.entypo-logout:before{content:"\E741"}.entypo.entypo-login:before{content:"\E740"}.entypo.entypo-check:before{content:"\2713"}.entypo.entypo-cross:before{content:"\274C"}.entypo.entypo-squared-minus:before{content:"\229F"}.entypo.entypo-squared-plus:before{content:"\229E"}.entypo.entypo-squared-cross:before{content:"\274E"}.entypo.entypo-circled-minus:before{content:"\2296"}.entypo.entypo-circled-plus:before{content:"\2295"}.entypo.entypo-circled-cross:before{content:"\2716"}.entypo.entypo-minus:before{content:"\2796"}.entypo.entypo-plus:before{content:"\2795"}.entypo.entypo-erase:before{content:"\232B"}.entypo.entypo-block:before{content:"\1F6AB"}.entypo.entypo-info:before{content:"\2139"}.entypo.entypo-circled-info:before{content:"\E705"}.entypo.entypo-help:before{content:"\2753"}.entypo.entypo-circled-help:before{content:"\E704"}.entypo.entypo-warning:before{content:"\26A0"}.entypo.entypo-cycle:before{content:"\1F504"}.entypo.entypo-cw:before{content:"\27F3"}.entypo.entypo-ccw:before{content:"\27F2"}.entypo.entypo-shuffle:before{content:"\1F500"}.entypo.entypo-back:before{content:"\1F519"}.entypo.entypo-level-down:before{content:"\21B3"}.entypo.entypo-retweet:before{content:"\E717"}.entypo.entypo-loop:before{content:"\1F501"}.entypo.entypo-back-in-time:before{content:"\E771"}.entypo.entypo-level-up:before{content:"\21B0"}.entypo.entypo-switch:before{content:"\21C6"}.entypo.entypo-numbered-list:before{content:"\E005"}.entypo.entypo-add-to-list:before{content:"\E003"}.entypo.entypo-layout:before{content:"\268F"}.entypo.entypo-list:before{content:"\2630"}.entypo.entypo-text-doc:before{content:"\1F4C4"}.entypo.entypo-text-doc-inverted:before:before{content:"\E731"}.entypo.entypo-doc:before{content:"\E730"}.entypo.entypo-docs:before{content:"\E736"}.entypo.entypo-landscape-doc:before{content:"\E737"}.entypo.entypo-picture:before{content:"\1F304"}.entypo.entypo-video:before{content:"\1F3AC"}.entypo.entypo-music:before{content:"\1F3B5"}.entypo.entypo-folder:before{content:"\1F4C1"}.entypo.entypo-archive:before{content:"\E800"}.entypo.entypo-trash:before{content:"\E729"}.entypo.entypo-upload:before{content:"\1F4E4"}.entypo.entypo-download:before{content:"\1F4E5"}.entypo.entypo-save:before{content:"\1F4BE"}.entypo.entypo-install:before{content:"\E778"}.entypo.entypo-cloud:before{content:"\2601"}.entypo.entypo-upload-cloud:before{content:"\E711"}.entypo.entypo-bookmark:before{content:"\1F516"}.entypo.entypo-bookmarks:before{content:"\1F4D1"}.entypo.entypo-open-book:before{content:"\1F4D6"}.entypo.entypo-play:before{content:"\25B6"}.entypo.entypo-paus:before{content:"\2016"}.entypo.entypo-record:before{content:"\25CF"}.entypo.entypo-stop:before{content:"\25A0"}.entypo.entypo-ff:before{content:"\23E9"}.entypo.entypo-fb:before{content:"\23EA"}.entypo.entypo-to-start:before{content:"\23EE"}.entypo.entypo-to-end:before{content:"\23ED"}.entypo.entypo-resize-full:before{content:"\E744"}.entypo.entypo-resize-small:before{content:"\E746"}.entypo.entypo-volume:before{content:"\23F7"}.entypo.entypo-sound:before{content:"\1F50A"}.entypo.entypo-mute:before{content:"\1F507"}.entypo.entypo-flow-cascade:before{content:"\1F568"}.entypo.entypo-flow-branch:before{content:"\1F569"}.entypo.entypo-flow-tree:before{content:"\1F56A"}.entypo.entypo-flow-line:before{content:"\1F56B"}.entypo.entypo-flow-parallel:before{content:"\1F56C"}.entypo.entypo-left-bold:before{content:"\E4AD"}.entypo.entypo-down-bold:before{content:"\E4B0"}.entypo.entypo-up-bold:before{content:"\E4AF"}.entypo.entypo-right-bold:before{content:"\E4AE"}.entypo.entypo-left:before{content:"\2B05"}.entypo.entypo-down:before{content:"\2B07"}.entypo.entypo-up:before{content:"\2B06"}.entypo.entypo-right:before{content:"\27A1"}.entypo.entypo-circled-left:before{content:"\E759"}.entypo.entypo-circled-down:before{content:"\E758"}.entypo.entypo-circled-up:before{content:"\E75B"}.entypo.entypo-circled-right:before{content:"\E75A"}.entypo.entypo-triangle-left:before{content:"\25C2"}.entypo.entypo-triangle-down:before{content:"\25BE"}.entypo.entypo-triangle-up:before{content:"\25B4"}.entypo.entypo-triangle-right:before{content:"\25B8"}.entypo.entypo-chevron-left:before{content:"\E75D"}.entypo.entypo-chevron-down:before{content:"\E75C"}.entypo.entypo-chevron-up:before{content:"\E75F"}.entypo.entypo-chevron-right:before{content:"\E75E"}.entypo.entypo-chevron-small-left:before{content:"\E761"}.entypo.entypo-chevron-small-down:before{content:"\E760"}.entypo.entypo-chevron-small-up:before{content:"\E763"}.entypo.entypo-chevron-small-right:before{content:"\E762"}.entypo.entypo-chevron-thin-left:before{content:"\E765"}.entypo.entypo-chevron-thin-down:before{content:"\E764"}.entypo.entypo-chevron-thin-up:before{content:"\E767"}.entypo.entypo-chevron-thin-right:before{content:"\E766"}.entypo.entypo-left-thin:before{content:"\2190"}.entypo.entypo-down-thin:before{content:"\2193"}.entypo.entypo-up-thin:before{content:"\2191"}.entypo.entypo-right-thin:before{content:"\2192"}.entypo.entypo-arrow-combo:before{content:"\E74F"}.entypo.entypo-three-dots:before{content:"\23F6"}.entypo.entypo-two-dots:before{content:"\23F5"}.entypo.entypo-dot:before{content:"\23F4"}.entypo.entypo-cc:before{content:"\1F545"}.entypo.entypo-cc-by:before{content:"\1F546"}.entypo.entypo-cc-nc:before{content:"\1F547"}.entypo.entypo-cc-nc-eu:before{content:"\1F548"}.entypo.entypo-cc-nc-jp:before{content:"\1F549"}.entypo.entypo-cc-sa:before{content:"\1F54A"}.entypo.entypo-cc-nd:before{content:"\1F54B"}.entypo.entypo-cc-pd:before{content:"\1F54C"}.entypo.entypo-cc-zero:before{content:"\1F54D"}.entypo.entypo-cc-share:before{content:"\1F54E"}.entypo.entypo-cc-remix:before{content:"\1F54F"}.entypo.entypo-db-logo:before{content:"\1F5F9"}.entypo.entypo-db-shape:before{content:"\1F5FA"}.entypo-social.entypo-github:before{content:"\F300"}.entypo-social.entypo-c-github:before{content:"\F301"}.entypo-social.entypo-flickr:before{content:"\F303"}.entypo-social.entypo-c-flickr:before{content:"\F304"}.entypo-social.entypo-vimeo:before{content:"\F306"}.entypo-social.entypo-c-vimeo:before{content:"\F307"}.entypo-social.entypo-twitter:before{content:"\F309"}.entypo-social.entypo-c-twitter:before{content:"\F30A"}.entypo-social.entypo-facebook:before{content:"\F30C"}.entypo-social.entypo-c-facebook:before{content:"\F30D"}.entypo-social.entypo-s-facebook:before{content:"\F30E"}.entypo-social.entypo-google:before{content:"\F30F"}.entypo-social.entypo-c-google:before{content:"\F310"}.entypo-social.entypo-pinterest:before{content:"\F312"}.entypo-social.entypo-c-pinterest:before{content:"\F313"}.entypo-social.entypo-tumblr:before{content:"\F315"}.entypo-social.entypo-c-tumblr:before{content:"\F316"}.entypo-social.entypo-linkedin:before{content:"\F318"}.entypo-social.entypo-c-linkedin:before{content:"\F319"}.entypo-social.entypo-dribbble:before{content:"\F31B"}.entypo-social.entypo-c-dribbble:before{content:"\F31C"}.entypo-social.entypo-stumbleupon:before{content:"\F31E"}.entypo-social.entypo-c-stumbleupon:before{content:"\F31F"}.entypo-social.entypo-lastfm:before{content:"\F321"}.entypo-social.entypo-c-lastfm:before{content:"\F322"}.entypo-social.entypo-rdio:before{content:"\F324"}.entypo-social.entypo-c-rdio:before{content:"\F325"}.entypo-social.entypo-spotify:before{content:"\F327"}.entypo-social.entypo-c-spotify:before{content:"\F328"}.entypo-social.entypo-qq:before{content:"\F32A"}.entypo-social.entypo-instagram:before{content:"\F32D"}.entypo-social.entypo-dropbox:before{content:"\F330"}.entypo-social.entypo-evernote:before{content:"\F333"}.entypo-social.entypo-flattr:before{content:"\F336"}.entypo-social.entypo-skype:before{content:"\F339"}.entypo-social.entypo-c-skype:before{content:"\F33A"}.entypo-social.entypo-renren:before{content:"\F33C"}.entypo-social.entypo-sina-weibo:before{content:"\F33F"}.entypo-social.entypo-paypal:before{content:"\F342"}.entypo-social.entypo-picasa:before{content:"\F345"}.entypo-social.entypo-soundcloud:before{content:"\F348"}.entypo-social.entypo-mixi:before{content:"\F34B"}.entypo-social.entypo-behance:before{content:"\F34E"}.entypo-social.entypo-google-circles:before{content:"\F351"}.entypo-social.entypo-vk:before{content:"\F354"}.entypo-social.entypo-smashing:before{content:"\F357"}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}p{margin:0 0 1em}h2,.h2{font-size:18px;line-height:24px;font-weight:200;margin:20px 0}@media (min-width:768px){h2,.h2{font-size:24px;line-height:30px}}.main-body{padding-left:30px;padding-right:30px}@media (min-width:768px){.main-body{margin-left:auto;margin-right:auto;width:440px}}.main-header{border-top:8px solid #403329;height:80px;margin-bottom:60px}@media (min-width:992px){.main-header{height:115px}}.navbar-logo{width:90px;height:80px;position:absolute;left:50%;margin-left:-45px;top:0}@media (max-width:991px){.navbar-logo img{width:90px;height:80px}}@media (min-width:992px){.navbar-logo{width:130px;height:115px;margin-left:-65px}}form{margin-bottom:40px}.form-control{border-radius:0;border:1px solid #ccc;display:block;padding:6px 12px;position:relative;width:100%;-webkit-appearance:none}.form-control:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.form-control:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.form-control+.form-control{margin-top:-1px}.form-control:focus{border-color:#2697de;z-index:1}@media (min-width:992px){.form-control{padding:10px 16px}}.btn-submit{background-color:#2697de;border-color:#2697de;border-bottom-color:#2080bd;border-bottom-width:2px;color:white;display:block;margin-top:10px;padding-bottom:6px;padding-top:6px;font-weight:bold;position:relative;text-transform:uppercase}@media (min-width:992px){.btn-submit{padding:10px 16px}}.btn-submit:hover,.btn-submit:focus{background-color:#3ca1e1;border-color:#2697de;border-bottom-color:#2288c8;color:white;outline:0 none}.btn-submit:active{box-shadow:none;background-color:#2697de;border-bottom-color:transparent;top:2px}
View
115 public/styles/site.less
@@ -1,78 +1,55 @@
// bootstrap
-@import "bootstrap/bootstrap.less";
+// Core variables and mixins
+@import "bootstrap/variables.less";
+@import "bootstrap/mixins.less";
+
+// Reset
+@import "bootstrap/normalize.less";
+@import "bootstrap/print.less";
+
+// Core CSS
+@import "bootstrap/scaffolding.less";
+@import "bootstrap/type.less";
+// @import "bootstrap/code.less";
+@import "bootstrap/grid.less";
+// @import "bootstrap/tables.less";
+@import "bootstrap/forms.less";
+@import "bootstrap/buttons.less";
+
+// Components
+@import "bootstrap/component-animations.less";
+// @import "bootstrap/glyphicons.less";
+@import "bootstrap/dropdowns.less";
+@import "bootstrap/button-groups.less";
+// @import "bootstrap/input-groups.less";
+@import "bootstrap/navs.less";
+@import "bootstrap/navbar.less";
+@import "bootstrap/thumbnails.less";
+@import "bootstrap/alerts.less";
+// @import "bootstrap/panels.less";
+// @import "bootstrap/close.less";
+
+// Components w/ JavaScript
+@import "bootstrap/modals.less";
+@import "bootstrap/tooltip.less";
+
+// Utility classes
+@import "bootstrap/utilities.less";
+@import "bootstrap/responsive-utilities.less";
+
+
+@import "site/variables.less";
@import "site/entypo.less";
+@import "site/layout.less";
+@import "site/type.less";
-// entypo in headings
-h1 > .entypo,
-h2 > .entypo,
-h3 > .entypo,
-h4 > .entypo {
- display: inline-block;
- vertical-align: middle;
- & + span {
- display: inline-block;
- margin-left: .5em;
- vertical-align: middle;
- }
-}
+// included here to reduce http requests
+@import "site/home.less";
+@import "site/me.less";
+// larger font on larger devices
@media (min-width: @screen-sm) {
body {
font-size: 16px;
}
- .dl-horizontal {
- dt {
- text-align: left;
- width: 100px;
- }
- dd {
- margin-left: 100px;
- }
- }
-}
-
-// footer
-#sydjs-footer {
-
- border-top: 1px solid @gray-lighter;
- margin-top: 100px;
- padding: 50px 0;
- position: relative;
- text-align: center;
-
- p {
- color: @gray-light;
- margin-bottom: 0;
- text-align: left;
- }
-
-}
-
-// blog
-article .post {
- p:first-child {
- .lead();
- margin-top: 30px;
- }
-}
-
-// type settings
-p {
- line-height: 1.5;
- margin: 0 0 20px;
-}
-h1 {
- font-size: 48px;
- font-weight: 200;
- line-height: 48px;
- margin: 40px 0 40px;
-}
-h2 {
- border-bottom: 1px solid @gray-lighter;
- font-weight: bold;
- margin: 40px 0 20px 0;
- padding-bottom: 20px;
}
-h3 {
- margin: 40px 0 20px;
-}
View
2 public/styles/site.min.css
1 addition, 1 deletion not shown because the diff is too large. Please use a local Git client to view these changes.
View
41 public/styles/site/entypo.less
@@ -26,49 +26,50 @@
// Regular catchall
.entypo {
+
+ // positioning
display: inline-block;
- line-height: 1;
+ vertical-align: -0.125em;
+
+ // resets inherited font styles
font-family: 'EntypoRegular';
font-style: normal;
font-weight: normal;
- position: relative;
+ font-variant: normal;
text-decoration: inherit;
- top: 1px;
+ text-transform: none;
// silence screen readers
speak: none;
// smooth iOS font
-webkit-font-smoothing: antialiased;
- /* reset parent styles, that can break glyph codes */
- font-variant: normal;
- text-transform: none;
-
/* entypo is abnormally small */
font-size: 2em;
/* offset font-size */
line-height: .5em;
-
- /*
- Column icons
- ==============================
- center align icons when in column layout
- not intended for general use
- uncomment, or copy, when needed
- */
- /*
- display: inline-block;
- width: .7em;
- text-align: center;
- */
}
+
+// Fixed width icons
+.entypo-fixed-width {
+ text-align: center;
+ width: .7em;
+}
+
+// Social catchall
.entypo-social {
.entypo();
font-family: 'EntypoSocial';
}
+// Entypo in buttons
+.entypo-btn-align {
+ margin-left: -0.075em;
+ margin-right: 0.075em;
+}
+
// ICONS - Regular
// ------------------------------
.entypo.entypo-phone { &:before { content: "\1F4DE"; } }
View
189 public/styles/site/home.less
@@ -0,0 +1,189 @@
+
+// coverall
+.section {
+ border-bottom: 8px solid white;
+
+ &:last-child {
+ border-bottom: 0 none;
+ }
+
+ .container {
+ padding-bottom: 40px;
+ padding-top: 40px;
+ }
+}
+
+
+
+
+// NEXT MEETUP
+.home-meetup {
+ background-color: @tan;
+
+ h1 {
+ margin: 20px 0;
+ }
+ .btn-register {
+ background-color: @orange;
+ border-color: @orange;
+ border-bottom-color: mix(@orange, black, 85%);
+ border-bottom-width: 2px;
+ color: white;
+ padding-bottom: 15px;
+ padding-top: 15px;
+ font-weight: bold;
+ position: relative;
+ text-transform: uppercase;
+
+ &:hover,
+ &:focus {
+ background-color: mix(@orange, white, 90%);
+ border-color: @orange;
+ border-bottom-color: mix(@orange, black, 90%);
+ outline: 0 none;
+ }
+ &:active {
+ box-shadow: none;
+ background-color: @orange;
+ border-bottom-width: 0;
+ bottom: -2px;
+ margin-bottom: 4px;
+ }
+ }
+}
+.home-meetup-wrapper {
+ box-shadow: 0 4px 0 rgba(0,0,0,0.1);
+ border-bottom: 1px solid mix(@tan, black, 70%);
+ position: relative;
+ z-index: 2;
+}
+.home-meetup-map {
+ height: 200px;
+}
+.home-meetup__details-list {
+ font-size: @font-size-large;
+ font-weight: 200;
+
+ dt, dd {
+ margin-bottom: 5px;
+ }
+ dt {
+ float: left;
+ width: 40px;
+ }
+ dd {
+ margin-left: 40px;
+ }
+ .entypo {
+ color: mix(@brown, @tan, 50%);
+ }
+}
+
+// Talks
+.talks__heading {
+ color: mix(@brown, @tan, 40%);
+ font-weight: bold;
+ margin-top: 30px;
+ text-transform: uppercase;
+}
+.talks {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+ .talk {
+ line-height: 1.1;
+ margin-bottom: 1em;
+ }
+ .talk__heading {
+ .h3();
+ margin: 0 0 5px;
+ font-weight: 200;
+ }
+ .talk__speaker {
+ color: mix(@brown, @tan, 50%);
+ }
+
+
+
+
+
+// ABOUT
+.home-about {
+ background-color: @brand-primary;
+ color: white;
+ text-align: center;
+
+ .container {
+ padding-left: 10%;
+ padding-right: 10%;
+ }
+
+ h2 {
+ color: white;
+ }
+ p {
+ color: mix(@brand-primary, white, 40%);
+ // font-size: @font-size-small;
+ font-weight: bold;
+ text-transform: uppercase;
+ }
+ a {
+ color: mix(@brand-primary, white, 40%);
+
+ &:hover {
+ color: white;
+ text-decoration: none;
+ }
+ }
+}
+
+
+
+
+
+// BLOG
+.home-blog {
+ background-color: white;
+
+ .illustrative-heading__text {
+ background-color: white;
+ }
+
+ @media (min-width: @screen-sm-min) {
+ .container {
+ width: 640px;
+ }
+ }
+}
+
+
+
+
+// LINKS
+.home-links {
+
+ .link-icon-badge {
+ .square( 90px );
+ background-color: @link-color;
+ border-radius: 50%;
+ line-height: 90px;
+ margin-left: auto;
+ margin-right: auto;
+ text-align: center;
+ }
+ .link-icon {
+ color: white;
+ display: inline-block;
+ font-size: 80px;
+ margin-top: -4px;
+ vertical-align: middle;
+ }
+ @media (min-width: @screen-sm-min) {
+ .link-icon-badge {
+ margin-left: 0;
+ margin-right: 0;
+ }
+ }
+}
+
View
165 public/styles/site/layout.less
@@ -0,0 +1,165 @@
+// EASTER EGG
+// ------------------------------
+#easter-egg {
+ background: url('/images/blueprintbg.png') #365bb4;
+ border-bottom: 8px solid white;
+ height: 400px;
+}
+
+
+
+
+
+// NAVBAR
+// ------------------------------
+.navbar {
+ border-bottom: 8px solid white;
+ font-size: @font-size-small;
+ font-weight: 500;
+ margin: 0;
+
+ .container {
+ position: relative;
+ }
+}
+.navbar-nav > li > a {
+ padding-left: 20px;
+ padding-right: 20px;
+ text-transform: uppercase;
+
+ @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+ @media (min-width: @screen-lg-min) {
+ padding-left: 30px;
+ padding-right: 30px;
+ }
+}
+.navbar-logo {
+ margin-left: (@grid-gutter-width / 2);
+ position: absolute;
+ z-index: 1;
+
+ @media (max-width: @screen-sm-max) {
+ img {
+ .size(90px,80px);
+ }
+ }
+ @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
+ .size(90px,80px);
+ left: 50%;
+ margin-left: -45px;
+ }
+ @media (min-width: @screen-md-min) {
+ .size(130px,115px);
+ left: 50%;
+ margin-left: -65px;
+ }
+}
+
+// not sure what the padding is doing on this element...
+.navbar-collapse {
+ .box-shadow( none );
+ padding-left: 0;
+ padding-right: 0;
+}
+.navbar-nav {
+ margin-left: 0;
+ margin-right: 0;
+}
+
+// hide the home link so it doesn't intersect the logo
+@media (max-width: @screen-xs-max) {
+ .nav-item-home {
+ visibility: hidden;
+ }
+ .navbar-nav .divider {
+ background-color: @navbar-default-toggle-border-color;
+ }
+}
+
+
+
+// FOOTER
+// ------------------------------
+#sydjs-body {
+ border-bottom: 8px solid white;
+}
+#sydjs-footer {
+ background-color: @brown;
+ color: mix(@brown, white, 50%);
+ font-size: @font-size-small;
+ padding: 20px 0;
+ position: relative;
+ text-align: center;
+ // text-transform: uppercase;
+
+ p {
+ color: @gray-light;
+ margin-bottom: 0;
+ }
+ a {
+ color: white;
+ }
+
+}
+
+
+
+
+
+// BLOG
+// ------------------------------
+@post-image-width: 170px;
+.blog-post {
+ text-align: center;
+ margin-bottom: 40px;
+}
+.blog-post__image {
+ margin-bottom: 20px;
+}
+.blog-post__content {
+ text-align: left;
+}
+.blog-post__heading {
+ margin-top: 0;
+
+ a {
+ color: @headings-color;
+ }
+}
+.blog-post__author {
+ color: mix(@body-bg, @text-color, 50%);
+ font-weight: 200;
+
+ a {
+ color: mix(@body-bg, @text-color, 50%);
+ }
+}
+
+@media (min-width: @screen-sm-min) {
+ .blog-post__image {
+ float: left;
+ width: @post-image-width;
+ }
+ .blog-post__content {
+ margin-left: @post-image-width + 20;
+ }
+}
+
+
+
+
+
+// FORMS
+// ------------------------------
+.form-horizontal .control-label {
+ text-align: left;
+}
+.checkbox { font-weight: inherit; }
+@media (max-width: @screen-xs-max) {
+ .form-group .row > [class^='col-'] {
+ margin-bottom: 10px;
+ }
+}
View
65 public/styles/site/me.less
@@ -0,0 +1,65 @@
+.section-profile-form {
+ border-bottom: 0 none;
+}
+.profile-form {
+ .header {
+ color: mix(@body-bg, @text-color, 50%)
+ }
+
+ .input {
+ border-radius: @input-border-radius;
+ padding: @padding-base-vertical @padding-base-horizontal;
+ width: 100%;
+ }
+ .input-faded {
+ .transition( all 200ms linear );
+ .box-shadow( none );
+ background-color: @body-bg;
+ border: 1px solid mix(black,@body-bg, 8%);
+
+ &:hover {
+ border-color: mix(black,@body-bg, 18%);
+ }
+ &:focus {
+ background-color: white;
+ border-color: @link-color;
+ }
+ }
+ .input-xl {
+ color: @text-color;
+ border-radius: @border-radius-large;
+ border-width: 2px;
+ font-size: 30px;
+ font-weight: 500;
+ padding: @padding-base-vertical @padding-base-horizontal;
+
+ @media (min-width: @screen-sm-min) {
+ font-size: 48px;
+ }
+ }
+
+ // labelling
+ .form-group {
+ position: relative;
+ }
+ .input-label {
+ .text-overflow();
+ color: mix(@body-bg, @text-color, 70%);
+ font-size: @font-size-small;
+ padding: @padding-base-vertical + 3 @padding-base-horizontal;
+ position: absolute;
+ text-transform: uppercase;
+ width: 100px;
+ }
+ .input-labelled {
+ padding-left: 100px;
+ }
+}
+.profile-form__heading {
+ color: mix(@body-bg,@text-color, 50%);
+}
+.section-next-meetup {
+ background-color: white;
+ border-bottom-color: mix(@body-bg, black, 90%);
+ border-top: 8px solid mix(@body-bg, black, 90%);
+}
View
117 public/styles/site/type.less
@@ -0,0 +1,117 @@
+// TYPE SETTING
+// ------------------------------
+
+// general
+p {
+ line-height: 1.5;
+ margin: 0 0 20px;
+}
+h1, .h1 {
+ font-size: 36px;
+ font-weight: 600;
+ line-height: 36px;
+ margin: 40px 0;
+ text-transform: uppercase;
+
+ @media (min-width: @screen-sm-min) {
+ font-size: 48px;
+ line-height: 48px;
+ }
+}
+h2, .h2 {
+ font-size: 24px;
+ line-height: 30px;
+ font-weight: 200;
+ margin: 20px 0;
+
+ @media (min-width: @screen-sm-min) {
+ font-size: 36px;
+ line-height: 40px;
+ }
+}
+h3, .h3 {
+ font-size: 18px;
+ line-height: 18px;
+ margin: 40px 0 20px;
+
+ @media (min-width: @screen-sm-min) {
+ font-size: 24px;
+ line-height: 24px;
+ }
+}
+
+
+
+
+// helpers
+.caps { text-transform: uppercase; }
+.text-small { font-size: @font-size-small; }
+.text-large { font-size: @font-size-large; }
+
+
+
+
+
+// horizontal description list
+@media (min-width: @screen-sm-min) {
+ .dl-horizontal {
+ dt {
+ text-align: left;
+ width: 100px;
+ }
+ dd {
+ margin-left: 100px;
+ }
+ }
+}
+
+
+
+
+
+// illustrative heading
+@illustrative-heading-size: 20px;
+.illustrative-heading {
+ font-size: 20px;
+ line-height: 1;
+ margin-bottom: 20px;
+ position: relative;
+ text-align: center;
+}
+ .illustrative-heading__line {
+ border-top: 3px double mix(@body-bg, @brown, 85%);
+ height: 0;
+ left: 0;
+ position: absolute;
+ top: @illustrative-heading-size / 2;
+ width: 100%;
+ z-index: 1;
+ }
+ .illustrative-heading__text {
+ background-color: @body-bg;
+ display: inline-block;
+ font-family: @font-family-serif;
+ font-style: italic;
+ padding: 0 20px;
+ position: relative;
+ z-index: 2;
+ }
+
+
+
+
+// horizontal rule
+.line-dashed { border-top: 1px dashed @hr-border; }
+.line-dotted { border-top: 1px dotted @hr-border; }
+.line-solid { border-top: 1px solid @hr-border; }
+.line-thick { border-top: 6px solid @hr-border; }
+
+
+
+
+// utilities
+.block { display: block; }
+.inline-block { display: inline-block; }
+
+.mb-0 { margin-bottom: 0; }
+.mt-0 { margin-top: 0; }
View
70 public/styles/site/variables.less
@@ -0,0 +1,70 @@
+//
+// So we can keep Bootstrap untouched. Easier to update
+// --------------------------------------------------
+
+
+// Global values
+// --------------------------------------------------
+
+
+@brand-primary: #2697de;
+@brand-secondary: #d55500;
+@brand-success: #1aaf5e;
+@brand-warning: #f4c600;
+@brand-danger: #b50001;
+@brand-info: #00abec;
+
+@brown: #403329;
+@tan: #f7f3ea;
+@orange: #d55500;
+
+@brand-facebook: #3b5997;
+@brand-twitter: #00abec;
+
+// Scaffolding
+// -------------------------
+
+@body-bg: @tan;
+@text-color: @brown;
+
+// Links
+// -------------------------
+
+@link-color: @brand-primary;
+@link-hover-color: lighten(@link-color, 15%);
+
+// Typography
+// -------------------------
+@headings-color: #222;
+
+
+// Navbar
+// -------------------------
+
+// Basics of a navbar
+@navbar-default-color: white;
+@navbar-default-bg: @brown;
+@navbar-default-border: @brown;
+
+// Navbar links
+@navbar-default-link-color: white;
+@navbar-default-link-hover-bg: mix(white, @brown, 4%);
+@navbar-default-link-hover-color: white;
+@navbar-default-link-active-bg: mix(black, @brown, 30%);
+@navbar-default-link-active-color: white;
+
+// Navbar toggle
+@navbar-default-toggle-hover-bg: mix(white, @brown, 5%);
+@navbar-default-toggle-icon-bar-bg: mix(white, @brown, 35%);
+@navbar-default-toggle-border-color: mix(white, @brown, 25%);
+
+
+
+// Miscellaneous
+// -------------------------
+
+// Hr border color
+@hr-border: mix(@tan, @brown, 85%);
+
+// Horizontal forms & lists
+@component-offset-horizontal: 100px;
View
7 routes/index.js
@@ -40,5 +40,12 @@ exports = module.exports = function(app) {
app.get('/blog/post/:post', routes.views.post);
app.get('/about', routes.views.about);
app.get('/mentoring', routes.views.mentoring);
+
+
+ // session
+ app.all('/signin', routes.views.signin);
+ app.get('/signout', routes.views.signout);
+
+ app.all('/me', routes.views.me);
}
View
16 routes/middleware.js
@@ -4,13 +4,13 @@ var _ = require('underscore'),
exports.initLocals = function(req, res, next) {
res.locals.navLinks = [
- { label: 'Home', key: 'home', href: '/' },
- { label: 'Meetups', key: 'meetups', href: '/meetups' },
- { label: 'Members', key: 'members', href: '/members' },
- { label: 'Links', key: 'links', href: '/links' },
- { label: 'Blog', key: 'blog', href: '/blog' },
- { label: 'About', key: 'about', href: '/about' },
- { label: 'Mentoring', key: 'mentoring', href: '/mentoring' }
+ { label: 'Home', key: 'home', href: '/', layout: 'left' },
+ { label: 'Meetups', key: 'meetups', href: '/meetups', layout: 'left' },
+ { label: 'Members', key: 'members', href: '/members', layout: 'left' },
+ { label: 'Links', key: 'links', href: '/links', layout: 'left' },
+ { label: 'Blog', key: 'blog', href: '/blog', layout: 'right' },
+ { label: 'About', key: 'about', href: '/about', layout: 'right' },
+ { label: 'Mentoring', key: 'mentoring', href: '/mentoring', layout: 'right' }
];
res.locals.user = req.user;
@@ -53,4 +53,4 @@ exports.flashMessages = function(req, res, next) {
next();
-};
+};
View
23 routes/views/index.js
@@ -1,4 +1,8 @@
-var keystone = require('keystone');
+var keystone = require('keystone'),
+ moment = require('moment');
+
+var Meetup = keystone.list('Meetup'),
+ Post = keystone.list('Post');
exports = module.exports = function(req, res) {
@@ -7,6 +11,23 @@ exports = module.exports = function(req, res) {
locals.section = 'home';
+
+ // Load the next meetup
+ view.query('nextMeetup',
+ Meetup.model.findOne()
+ .where('date').gte(moment().startOf('day').toDate())
+ .where('state', 'published')
+ .sort('-startDate')
+ , 'talks[who]');
+
+
+ // Load posts
+ view.query('posts',
+ Post.model.find()
+ .where('state', 'published')
+ .sort('-publishedDate')
+ .populate('author categories'));
+
view.render('site/index');
}
View
29 routes/views/me.js
@@ -0,0 +1,29 @@
+var keystone = require('keystone'),
+ moment = require('moment');
+
+var Meetup = keystone.list('Meetup');
+
+exports = module.exports = function(req, res) {
+
+ var view = new keystone.View(req, res),
+ locals = res.locals;
+
+ locals.section = 'me';
+
+ view.query('meetups.next',
+ Meetup.model.findOne()
+ .where('date').gte(moment().startOf('day').toDate())
+ .where('state', 'published')
+ .sort('-startDate')
+ , 'talks[who]');
+
+ view.query('meetups.past',
+ Meetup.model.find()
+ .where('date').lt(moment().subtract('days', 1).endOf('day').toDate())
+ .where('state', 'published')
+ .sort('-startDate')
+ , 'talks[who]');
+
+ view.render('site/me');
+
+}
View
36 routes/views/signin.js
@@ -0,0 +1,36 @@
+var keystone = require('keystone');
+
+exports = module.exports = function(req, res) {
+
+ var view = new keystone.View(req, res),
+ locals = res.locals;
+
+ locals.section = 'session';
+
+ view.on('post', function(next) {
+
+ if (!req.body.email || !req.body.password) {
+ req.flash('error', 'Please enter your username and password.');
+ return next();
+ }
+
+ var onSuccess = function(user) {
+ if (req.query && req.query.from) {
+ res.redirect(req.query.from);
+ } else {
+ res.redirect('/me');
+ }
+ }
+
+ var onFail = function(e) {
+ req.flash('error', 'Your username or password were incorrect, please try again.');
+ next();
+ }
+
+ keystone.session.signin({ email: req.body.email, password: req.body.password }, req, res, onSuccess, onFail);
+
+ });
+
+ view.render('site/signin');
+
+}
View
14 routes/views/signout.js
@@ -0,0 +1,14 @@
+var keystone = require('keystone');
+
+exports = module.exports = function(req, res) {
+
+ var view = new keystone.View(req, res),
+ locals = res.locals;
+
+ locals.section = 'session';
+
+ keystone.session.signout(req, res, function() {
+ view.render('site/signout');
+ });
+
+};
View
63 templates/layouts/default.jade
@@ -18,35 +18,64 @@ html
block head
body: #sydjs-wrapper
- //- header
+ //- EASTER EGG
+ #easter-egg(style='display: none;')
+
+
+ //- HEADER
header(role='banner')#sydjs-nav
- nav.navbar.navbar-default.navbar-static-top: .container
- ul.nav.navbar-nav
- each link in navLinks
- li(class=(section == link.key ? 'active' : null)): a(href=link.href)= link.label
- ul.nav.navbar-nav.pull-right
- if user
- li: a(href='/keystone') Open Keystone
- else
- li: a(href='/keystone/signin') Sign In
-
- //- body
+ nav.navbar.navbar-default.navbar-static-top(role='navigation'): .container
+ .navbar-header
+ button.navbar-toggle.navbar-toggle-menu.navbar-toggle-left(type='button', data-toggle='collapse', data-target='.navbar-headernav-collapse')
+ span.sr-only Toggle navigation
+ !='<span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span>'
+ a(href='/', title='Back to Home').navbar-logo
+ img(src='/images/logo.svg', alt='SydJS logo', width=130, height=115)
+ //- a(href='/', title='Back to Home').navbar-brand.visible-xs SydJS
+ .collapse.navbar-collapse.navbar-headernav-collapse
+ ul.nav.navbar-nav
+ each link in navLinks
+ if link.layout == 'left'
+ li(class=(section == link.key ? 'nav-item-' + link.key + ' active' : 'nav-item-' + link.key)): a(href=link.href)= link.label
+ ul.nav.navbar-nav.navbar-right
+ each link in navLinks
+ if link.layout == 'right'
+ li(class=(section == link.key ? 'nav-item-' + link.key + ' active' : 'nav-item-' + link.key)): a(href=link.href)= link.label
+ if user
+ li.dropdown
+ a(href=js, data-toggle='dropdown')
+ | #{user.name.first}
+ span.caret
+ ul.dropdown-menu
+ li: a(href='/me') Profile
+ li: a(href='/keystone') Keystone
+ li.divider
+ li: a(href='/signout') Sign out
+ else
+ li: a(href='/signin') Sign In
+
+
+ //- BODY
#sydjs-body
- //- intro
+
block intro
- //- messages
+
+flash-messages(messages)
- //- content
+
block content
- //- footer
+
+
+ //- FOOTER
#sydjs-footer: .container
p Copyright &copy; 2013 SydJS. Powered by <a href='http://keystonejs.com'>KeystoneJS</a>.
p If you run a meetup, please feel free to clone our site and make your own!
//- scripts
script(src='/js/lib/jquery/jquery-1.10.2.min.js')
+ script(src='/js/lib/bootstrap/collapse.js')
+ script(src='/js/lib/bootstrap/dropdown.js')
- block page-js
+ block js
if env == 'production' && ga_property && ga_domain
script.
View
57 templates/layouts/session.jade
@@ -0,0 +1,57 @@
+include ../mixins/flash-messages
+
+doctype 5
+html
+ head
+ if env == 'production'
+ script.
+ var _sf_startpt=(new Date()).getTime()
+
+ meta(charset="utf-8")
+ meta(name="viewport", content="initial-scale=1.0,user-scalable=no,maximum-scale=1,width=device-width")
+
+ title= title || 'SydJS'
+ link(rel="shortcut icon", href="/favicon.ico", type="image/x-icon")
+ link(href="/styles/session.min.css", rel="stylesheet")
+
+ block css
+ body: #session-wrapper
+
+
+ //- HEADER
+ header(role='banner').main-header
+ a(href='/', title='Back to Home').navbar-logo
+ img(src='/images/logo.svg', alt='SydJS logo', width=130, height=115)
+
+
+ //- BODY
+ .main-body
+
+ block intro
+
+ +flash-messages(messages)
+
+ block content
+
+
+ //- FOOTER
+ //- #sydjs-footer: .container
+ //- p Copyright &copy; 2013 SydJS. Powered by <a href='http://keystonejs.com'>KeystoneJS</a>.
+ //- p If you run a meetup, please feel free to clone our site and make your own!
+
+ //- scripts
+ script(src='/js/lib/jquery/jquery-1.10.2.min.js')
+ //- script(src='/js/lib/bootstrap/collapse.js')
+ //- script(src='/js/lib/bootstrap/dropdown.js')
+
+ block js
+
+ if env == 'production' && ga_property && ga_domain
+ 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),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', '#{ga_property}', '#{ga_domain}');
+ ga('send', 'pageview');
View
22 templates/mixins/post.jade
@@ -0,0 +1,22 @@
+mixin post(post)
+ article(role="article", itemscope itemtype="http://schema.org/BlogPosting").blog-post
+ .blog-post__date.illustrative-heading
+ span.illustrative-heading__line
+ span.illustrative-heading__text
+ time(datetime=post._.publishedDate.format('YYYY-MM-DD'), itemprop='datePublished')=post._.publishedDate.format('MMMM Do, YYYY')
+ .blog-post__image
+ a(href='/blog/post/' + post.slug)
+ if post.image.exists
+ img(src=post._.image.fit(770,510), alt=post.title).img-responsive
+ .blog-post__content
+ h3(itemprop='name').blog-post__heading: a(href='/blog/post/' + post.slug, itemprop='url')= post.title
+ if post.author
+ h5.blog-post__author by
+ a(href='/members', rel='author')=post.author.name.full
+ if post.categories && post.categories.length
+ | in
+ each cat, i in post.categories
+ if i
+ | ,
+ a(href='/blog/' + cat.key)= cat.name
+ p(itemprop='description')!= post.content.brief
View
6 templates/views/errors/404.jade
@@ -2,9 +2,9 @@ extends ../../layouts/default
block content
.container
- h1.page-header-heading!=errorTitle || 'Page not found (404)'
+ h1!=errorTitle || 'Not found (404)'
if 'object' == typeof errorMsg
div(style='margin: 30px 0;').debug!= htmlStringify(errorMsg)
else
- p.lead.page-header-lead!= utils.textToHTML(errorMsg) || 'If you found this page, you probably know what it means. Good luck on your travels :)'
- p: a(href='/').btn.btn-default.btn-lg SydJS Home
+ p.lead!= utils.textToHTML(errorMsg) || 'If you found this page, you probably know what it means. Good luck on your travels :)'
+ p: a(href='/').btn.btn-primary.btn-lg SydJS Home
View
28 templates/views/site/blog.jade
@@ -1,32 +1,12 @@
extends ../../layouts/default
-mixin post(post)
- .post
- h2: a(href='/blog/post/' + post.slug)= post.title
- p.lead.text-muted Posted
- if post.publishDate
- | on #{post._.publishedDate.format('MMMM Do, YYYY')}
- if post.categories && post.categories.length
- | in
- each cat, i in post.categories
- a(href='/blog/' + cat.key)= cat.name
- if i < post.categories.length - 1
- | ,
- else
- |
- if post.author
- | by #{post.author.name.first}
- if post.image.exists
- img(src=post._.image.fit(160,160)).img.pull-right
- p!= post.content.brief
- if post.content.extended
- p.read-more: a(href='/blog/post/' + post.slug) Read more...
+include ../../mixins/post
block content
.container
h1=data.category ? data.category.name : 'Blog'
.row
- .col-sm-8.col-md-9
+ .col-sm-9
if filters.category && !data.category
h3 Invalid Category.
else
@@ -40,10 +20,10 @@ block content
else
h3 There are no posts yet.
- .col-sm-4.col-md-3
+ .col-sm-3
if data.categories.length
//- h2 Categories
.list-group(style='margin-top: 70px;')
a(href='/blog', class=!data.category ? 'active' : false).list-group-item All Categories
each cat in data.categories
- a(href='/blog/' + cat.key, class=data.category && data.category.id == cat.id ? 'active' : false).list-group-item= cat.name
+ a(href='/blog/' + cat.key, class=data.category && data.category.id == cat.id ? 'active' : false).list-group-item= cat.name
View
113 templates/views/site/index.jade
@@ -1,6 +1,115 @@
extends ../../layouts/default
+include ../../mixins/post
+
block content
- .container
- h1 Welcome to SydJS
+ //- Hero
+ section.section.home-meetup
+ .home-meetup-wrapper
+ .container
+ h1= nextMeetup.name
+ .row
+ .col-sm-8
+ p!= nextMeetup.description
+ if nextMeetup.talks.length
+ h5.talks__heading With talks about
+ ol.talks
+ each talk in nextMeetup.talks
+ li.talk
+ .talk__heading= talk.name
+ if talk.who.length
+ .talk__speaker by
+ each user in talk.who
+ = user.name.full + ' '
+ if user.twitter
+ a(href='http://twitter.com/' + user.twitter.replace('@', ''), target='_blank')= user.twitter + ' '
+ .col-sm-4
+ dl.dl-horizontal.home-meetup__details-list
+ dt
+ .sr-only Date
+ span.entypo.entypo-fixed-width.entypo-calendar
+ dd=nextMeetup._.date.format('dddd, DD MMM YYYY')
+ dt
+ .sr-only Time
+ span.entypo.entypo-fixed-width.entypo-clock
+ dd=nextMeetup.time
+ dt
+ .sr-only Place
+ span.entypo.entypo-fixed-width.entypo-location
+ dd=nextMeetup.place
+ .register-btn
+ a(href=js).btn.btn-lg.btn-block.btn-register Register
+ hr.line-dashed
+ p: a(href='/meetups').text-muted View past meetups &rarr;
+ .home-meetup-map#meetup-map
+ span.sr-only='Map for ' + nextMeetup.place
+
+
+ //- About
+ section.section.home-about: .container
+ h2 SydJS is a gathering of some friendly folks in Sydney who love Javascript. But first, you must demonstrate your commitment to justice.
+ p
+ a(href='/about') Learn more about SydJS
+ | &nbsp;&middot;&nbsp;
+ a(href='/about') Read our Community Guidelines
+
+
+
+ //- Blog
+ section.section.home-blog: .container
+ .blog(itemscope itemtype="http://schema.org/Blog")
+ for post in posts
+ +post(post)
+ hr.line-dashed
+ p: a(href='/blog').text-muted See all SydJS blog posts &rarr;
+
+
+
+ //- Links
+ section.section.home-links: .container
+ .row
+ .col-sm-4
+ .link-icon-badge: span.link-icon.entypo.entypo-network
+ h2 Organisations
+ p When a forest grows too wild, a purging fire is inevitable and natural. Tomorrow the world will watch in horror as its greatest city destroys itself.
+ p: a(href='/members') View organisations
+
+ .col-sm-4
+ .link-icon-badge: span.link-icon.entypo.entypo-users
+ h2 Members
+ p When a forest grows too wild, a purging fire is inevitable and natural. Tomorrow the world will watch in horror as its greatest city destroys itself.
+ p: a(href='/members') View members
+
+ .col-sm-4
+ .link-icon-badge: span.link-icon.entypo.entypo-link
+ h2 Resources
+ p When a forest grows too wild, a purging fire is inevitable and natural. Tomorrow the world will watch in horror as its greatest city destroys itself.
+ p: a(href='/members') View resources
+
+block js
+ script(src!='https://maps.googleapis.com/maps/api/js?key=AIzaSyBnDlg_VYer_nHycWCWYZmikwlAFpfoQhw&sensor=false&libraries=places')
+ script.
+ jQuery(function($) {
+
+ // LOAD MAP
+ google.maps.visualRefresh = true;
+
+ var mapOptions = {
+ scrollwheel: false,
+ disableDefaultUI: true,
+ zoomControl: true,
+ zoomControlOptions: {
+ style: google.maps.ZoomControlStyle.DEFAULT
+ },
+ mapTypeControlOptions: {
+ mapTypeIds: [google.maps.MapTypeId.ROADMAP, 'map_style']
+ }
+ };
+
+ var map = new google.maps.Map(document.getElementById("meetup-map"), mapOptions);
+
+ console.log(new google.maps.LatLng('-33.867259', '151.207051'));
+ map.setCenter(new google.maps.LatLng('-33.867259', '151.207051'));
+ map.setZoom(12);
+ });
View
103 templates/views/site/me.jade
@@ -0,0 +1,103 @@
+extends ../../layouts/default
+
+block content
+ .section.section-profile-form
+ .container
+ form(method='post', action='private_info').profile-form
+ h4.profile-form__heading Your Profile
+ .form-group
+ .row
+ .col-sm-6: input(type='text', name='name.first' value=user.name.first).input.input-xl.input-faded
+ .col-sm-6: input(type='text', name='name.last' value=user.name.last).input.input-xl.input-faded
+ .form-group
+ label.input-label Email
+ input(type='email', name='email' value=user.email).input.input-labelled.input-faded
+ .row
+ .col-sm-6
+ .form-group
+ label.input-label Twitter
+ input(type='text', name='twitter' value=user.twitter).input.input-labelled.input-faded
+ .col-sm-6
+ .form-group
+ label.input-label Github
+ input(type='text', name='github' value=user.github).input.input-labelled.input-faded
+
+ .section.section-next-meetup
+ .container
+ .row
+ .col-sm-6
+ if meetups.next
+ h2.mt-0 Next Meetup
+ h4=meetups.next._.date.format('dddd, DD MMM YYYY')
+ p.btn-group.btn-group-justified(data-toggle='buttons')
+ label.btn.btn-default.js-rsvp-attending
+ input(type='radio', name='rsvp', id='rsvp-attending')
+ | Coming
+ label.btn.btn-default.js-rsvp-decline
+ input(type='radio', name='rsvp', id='rsvp-decline')
+ | Not Coming
+ p: a(href='/meetups') See all meetups &rarr;
+ else
+ h2.mt-0 No upcoming meetups
+
+ .col-sm-6
+ if meetups.past.length
+ h2.mt-0 Meetups I've been to
+ ol
+ each attendedMU in meetups.past
+ li=attendedMU.name
+ .section.section-public-form
+ .container
+ .row
+ .col-sm-8.col-sm-offset-2
+ form(method='post').form-horizontal
+ h2.h1.text-center.mt-0 Public info
+ .form-group
+ .col-sm-10.col-sm-offset-2
+ label.checkbox
+ input(type='checkbox', name='isPublic')
+ | Show my profile on the SydJS website
+ .form-group
+ label.col-sm-2.control-label Website
+ .col-sm-10
+ input(type='text', name='website', value=user.website).form-control
+ .form-group
+ label.col-sm-2.control-label Bio
+ .col-sm-10
+ textarea(name='bio').form-control=user.bio
+ .form-group
+ label.col-sm-2.control-label Mentoring
+ .col-sm-10
+ label.checkbox
+ input(type='checkbox', name='mentoring.available')
+ | Available as a mentor
+ label.checkbox
+ input(type='checkbox', name='mentoring.free')
+ | For Free
+ label.checkbox
+ input(type='checkbox', name='mentoring.paid')
+ | For Payment
+ label.checkbox
+ input(type='checkbox', name='mentoring.swap')
+ | For Swap
+ label.checkbox
+ input(type='text', name='mentoring.have', placeholder='Has...').form-control
+ label.checkbox
+ input(type='text', name='mentoring.want', placeholder='Wants...').form-control
+ .form-group
+ .col-sm-10.col-sm-offset-2
+ button(type='submit', data-loading-text="Saving...").btn.btn-primary Save changes
+ .col-sm-4
+block js
+ script(src='/js/lib/bootstrap/button.js')
+ script.
+ jQuery(function($) {
+ $('.js-rsvp-attending').click( function() {
+ $(this).addClass('btn-success');
+ $(this).siblings().removeClass('btn-danger');
+ });
+ $('.js-rsvp-decline').click( function() {
+ $(this).addClass('btn-danger');
+ $(this).siblings().removeClass('btn-success');
+ });
+ });
View
52 templates/views/site/post.jade
@@ -1,30 +1,30 @@
extends ../../layouts/default
block content
- - console.log(data.post)
+ //- - console.log(data.post)
.container: .row: .col-sm-10.col-sm-offset-1.col-md-8.col-md-offset-2
- article
- p: a(href='/blog') &larr; back to the blog
- hr
- if !data.post
- h2 Invalid Post.
- else
- header
- h1= data.post.title
- h5 Posted
- if data.post.publishDate
- | on #{data.post._.publishedDate.format('MMMM Do, YYYY')}
- if data.post.categories && data.post.categories.length
- | in
- each cat, cat_i in data.post.categories
- a(href='/blog/' + cat.key)= cat.name
- if cat_i < data.post.categories.length - 1
- | ,
- else
- |
- if data.post.author
- | by #{data.post.author.name.first}
- .post
- if data.post.image.exists
- .image-wrap: img(src=data.post._.image.fit(750,450)).img-responsive
- != data.post.content.full
+ article
+ p: a(href='/blog') &larr; back to the blog
+ hr
+ if !data.post
+ h2 Invalid Post.
+ else
+ header
+ h1= data.post.title
+ h5 Posted
+ if data.post.publishDate
+ | on #{data.post._.publishedDate.format('MMMM Do, YYYY')}
+ if data.post.categories && data.post.categories.length
+ | in
+ each cat, cat_i in data.post.categories
+ a(href='/blog/' + cat.key)= cat.name
+ if cat_i < data.post.categories.length - 1
+ | ,
+ else
+ |
+ if data.post.author
+ | by #{data.post.author.name.first}
+ .post
+ if data.post.image.exists
+ .image-wrap: img(src=data.post._.image.fit(750,450)).img-responsive
+ != data.post.content.full
View
63 templates/views/site/signin.jade
@@ -0,0 +1,63 @@
+extends ../../layouts/session
+
+block content
+ form(method='post',role='signin').signin-form
+ h2 Sign in or Register
+ a(href=js).btn.btn-facebook.btn-block
+ span.entypo.entypo-s-facebook
+ | Sign in with Facebook
+ .form-control-box
+ //- label(for='signin-email').sr-only Email
+ input(type='email', name='email', placeholder='Email', id='signin-email').form-control
+ //- label(for='signin-password').sr-only Password
+ input(type='password', name='password', placeholder='Password', id='signin-password').form-control
+ button(type='submit').btn.btn-block.btn-submit Sign in
+
+
+
+ form(method='post',role='join', style='display: none;').join-form
+ .form-control-box
+ //- label(for='join-name').sr-only Email
+ input(type='text', name='name', placeholder='Name', id='join-name').form-control
+ //- label(for='join-email').sr-only Email
+ input(type='email', name='email', placeholder='Email', id='join-email').form-control
+ //- label(for='join-password').sr-only Password
+ input(type='password', name='password', placeholder='Password', id='join-password').form-control
+ //- label(for='signin-password').sr-only Confirm Password
+ input(type='password', name='passwordConfirm', placeholder='Confirm Password', id='signin-passwordConfirm').form-control
+ //- label(for='signin-twitter').sr-only Twitter
+ input(type='text', name='twitter', placeholder='Twitter', id='signin-twitter').form-control
+ button(type='submit').btn.btn-block.btn-submit Join SydJS
+
+
+
+ p.text-center
+ //- a(href=js).js-toggle-join Join SydJS
+ a(href=js, style='display: none;').js-toggle-signin Sign In
+ p.text-center
+ a(href='/forgot-password') Forgot your password?
+
+block js
+ script.
+ var $form = $('.signin-form');
+ var $submit = $form.find("[type='submit']");
+
+ $submit.click( function() {
+ $submit.addClass( 'disabled' );
+ });
+
+ $form.find("input[type!='hidden']").first().focus();
+
+ $('.js-toggle-join').click( function() {
+ $('.join-form').show().find("input[type!='hidden']").first().focus();
+ $('.signin-form').hide();
+ $('.js-toggle-signin').show();
+ $('.js-toggle-join').hide();
+ });
+
+ $('.js-toggle-signin').click( function() {
+ $('.signin-form').show().find("input[type!='hidden']").first().focus();
+ $('.join-form').hide();
+ $('.js-toggle-join').show();
+ $('.js-toggle-signin').hide();
+ });
View
8 templates/views/site/signout.jade
@@ -0,0 +1,8 @@
+extends ../../layouts/session
+
+block content
+ .row: .col-md-6.col-md-offset-3
+ h1 Signed out
+ p.lead See you again soon...
+ p: a(href='/signin').btn.btn-primary.btn-block Sign in again
+ p: a(href='/').btn.btn-default.btn-block Home, Jeeves!
View
1 web.js
@@ -42,6 +42,7 @@ keystone.set('routes', require('./routes'));
keystone.set('locals', {
_: require('underscore'),
+ js: 'javascript:;',
env: keystone.get('env'),
utils: keystone.utils,
ga_property: keystone.get('ga property'),

0 comments on commit b86fb96

Please sign in to comment.