diff --git a/.gitignore b/.gitignore
index 9ed6926..f1b24f0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -162,3 +162,4 @@ $RECYCLE.BIN/
# Mac crap
.DS_Store
+
diff --git a/PocketSharp.Website/.editorconfig b/PocketSharp.Website/.editorconfig
new file mode 100644
index 0000000..97626d6
--- /dev/null
+++ b/PocketSharp.Website/.editorconfig
@@ -0,0 +1,16 @@
+; This file is for unifying the coding style for different editors and IDEs
+; editorconfig.org
+
+root = true
+
+; default settings for all files
+[**]
+end_of_line = crlf ; this is git standard, so it won't convert it anymore
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = false
+indent_style = spaces
+indent_size = 2
+
+[*.md]
+trim_trailing_whitespace = false
diff --git a/PocketSharp.Website/Assets/Fonts/SegoeUI-Italic-final.eot b/PocketSharp.Website/Assets/Fonts/SegoeUI-Italic-final.eot
new file mode 100644
index 0000000..8bf1074
Binary files /dev/null and b/PocketSharp.Website/Assets/Fonts/SegoeUI-Italic-final.eot differ
diff --git a/PocketSharp.Website/Assets/Fonts/SegoeUI-Italic-final.otf b/PocketSharp.Website/Assets/Fonts/SegoeUI-Italic-final.otf
new file mode 100644
index 0000000..d3838af
Binary files /dev/null and b/PocketSharp.Website/Assets/Fonts/SegoeUI-Italic-final.otf differ
diff --git a/PocketSharp.Website/Assets/Fonts/SegoeUI-Italic-final.svg b/PocketSharp.Website/Assets/Fonts/SegoeUI-Italic-final.svg
new file mode 100644
index 0000000..394c10a
--- /dev/null
+++ b/PocketSharp.Website/Assets/Fonts/SegoeUI-Italic-final.svg
@@ -0,0 +1,2507 @@
+
+
+
diff --git a/PocketSharp.Website/Assets/Fonts/SegoeUI-Italic-final.ttf b/PocketSharp.Website/Assets/Fonts/SegoeUI-Italic-final.ttf
new file mode 100644
index 0000000..d0a5aaa
Binary files /dev/null and b/PocketSharp.Website/Assets/Fonts/SegoeUI-Italic-final.ttf differ
diff --git a/PocketSharp.Website/Assets/Fonts/SegoeUI-Italic-final.woff b/PocketSharp.Website/Assets/Fonts/SegoeUI-Italic-final.woff
new file mode 100644
index 0000000..2f42f54
Binary files /dev/null and b/PocketSharp.Website/Assets/Fonts/SegoeUI-Italic-final.woff differ
diff --git a/PocketSharp.Website/Assets/Fonts/SegoeUI-Regular-final.eot b/PocketSharp.Website/Assets/Fonts/SegoeUI-Regular-final.eot
new file mode 100644
index 0000000..e1c18da
Binary files /dev/null and b/PocketSharp.Website/Assets/Fonts/SegoeUI-Regular-final.eot differ
diff --git a/PocketSharp.Website/Assets/Fonts/SegoeUI-Regular-final.otf b/PocketSharp.Website/Assets/Fonts/SegoeUI-Regular-final.otf
new file mode 100644
index 0000000..c6caa94
Binary files /dev/null and b/PocketSharp.Website/Assets/Fonts/SegoeUI-Regular-final.otf differ
diff --git a/PocketSharp.Website/Assets/Fonts/SegoeUI-Regular-final.svg b/PocketSharp.Website/Assets/Fonts/SegoeUI-Regular-final.svg
new file mode 100644
index 0000000..177f9a6
--- /dev/null
+++ b/PocketSharp.Website/Assets/Fonts/SegoeUI-Regular-final.svg
@@ -0,0 +1,2069 @@
+
+
+
diff --git a/PocketSharp.Website/Assets/Fonts/SegoeUI-Regular-final.ttf b/PocketSharp.Website/Assets/Fonts/SegoeUI-Regular-final.ttf
new file mode 100644
index 0000000..7dbd048
Binary files /dev/null and b/PocketSharp.Website/Assets/Fonts/SegoeUI-Regular-final.ttf differ
diff --git a/PocketSharp.Website/Assets/Fonts/SegoeUI-Regular-final.woff b/PocketSharp.Website/Assets/Fonts/SegoeUI-Regular-final.woff
new file mode 100644
index 0000000..c54e81d
Binary files /dev/null and b/PocketSharp.Website/Assets/Fonts/SegoeUI-Regular-final.woff differ
diff --git a/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiBold-final.eot b/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiBold-final.eot
new file mode 100644
index 0000000..75f0edd
Binary files /dev/null and b/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiBold-final.eot differ
diff --git a/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiBold-final.otf b/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiBold-final.otf
new file mode 100644
index 0000000..db473cb
Binary files /dev/null and b/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiBold-final.otf differ
diff --git a/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiBold-final.svg b/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiBold-final.svg
new file mode 100644
index 0000000..48ef076
--- /dev/null
+++ b/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiBold-final.svg
@@ -0,0 +1,2068 @@
+
+
+
diff --git a/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiBold-final.ttf b/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiBold-final.ttf
new file mode 100644
index 0000000..7c7f9c9
Binary files /dev/null and b/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiBold-final.ttf differ
diff --git a/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiBold-final.woff b/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiBold-final.woff
new file mode 100644
index 0000000..afa8fc2
Binary files /dev/null and b/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiBold-final.woff differ
diff --git a/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiLight-final.eot b/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiLight-final.eot
new file mode 100644
index 0000000..97fab3c
Binary files /dev/null and b/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiLight-final.eot differ
diff --git a/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiLight-final.otf b/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiLight-final.otf
new file mode 100644
index 0000000..6542901
Binary files /dev/null and b/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiLight-final.otf differ
diff --git a/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiLight-final.svg b/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiLight-final.svg
new file mode 100644
index 0000000..2c6e3e9
--- /dev/null
+++ b/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiLight-final.svg
@@ -0,0 +1,2200 @@
+
+
+
diff --git a/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiLight-final.ttf b/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiLight-final.ttf
new file mode 100644
index 0000000..dc2222c
Binary files /dev/null and b/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiLight-final.ttf differ
diff --git a/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiLight-final.woff b/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiLight-final.woff
new file mode 100644
index 0000000..f30ba8e
Binary files /dev/null and b/PocketSharp.Website/Assets/Fonts/SegoeUI-SemiLight-final.woff differ
diff --git a/PocketSharp.Website/Assets/Fonts/entypo.eot b/PocketSharp.Website/Assets/Fonts/entypo.eot
new file mode 100644
index 0000000..41f223e
Binary files /dev/null and b/PocketSharp.Website/Assets/Fonts/entypo.eot differ
diff --git a/PocketSharp.Website/Assets/Fonts/entypo.svg b/PocketSharp.Website/Assets/Fonts/entypo.svg
new file mode 100644
index 0000000..86b3b30
--- /dev/null
+++ b/PocketSharp.Website/Assets/Fonts/entypo.svg
@@ -0,0 +1,834 @@
+
+
+
diff --git a/PocketSharp.Website/Assets/Fonts/entypo.ttf b/PocketSharp.Website/Assets/Fonts/entypo.ttf
new file mode 100644
index 0000000..331ea3a
Binary files /dev/null and b/PocketSharp.Website/Assets/Fonts/entypo.ttf differ
diff --git a/PocketSharp.Website/Assets/Fonts/entypo.woff b/PocketSharp.Website/Assets/Fonts/entypo.woff
new file mode 100644
index 0000000..b0771de
Binary files /dev/null and b/PocketSharp.Website/Assets/Fonts/entypo.woff differ
diff --git a/PocketSharp.Website/Assets/Javascripts/analytics.js b/PocketSharp.Website/Assets/Javascripts/analytics.js
new file mode 100644
index 0000000..b32fd25
--- /dev/null
+++ b/PocketSharp.Website/Assets/Javascripts/analytics.js
@@ -0,0 +1,10 @@
+var _gaq = _gaq || [];
+_gaq.push(['_setAccount', 'UA-XXXXXX-XX']);
+_gaq.push(['_gat._anonymizeIp']);
+_gaq.push(['_trackPageview']);
+
+(function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+})();
\ No newline at end of file
diff --git a/PocketSharp.Website/Assets/Stylesheets/Base/_all.scss b/PocketSharp.Website/Assets/Stylesheets/Base/_all.scss
new file mode 100644
index 0000000..30f7eff
--- /dev/null
+++ b/PocketSharp.Website/Assets/Stylesheets/Base/_all.scss
@@ -0,0 +1,3 @@
+@import "typography";
+
+@import "buttons";
\ No newline at end of file
diff --git a/PocketSharp.Website/Assets/Stylesheets/Base/_buttons.scss b/PocketSharp.Website/Assets/Stylesheets/Base/_buttons.scss
new file mode 100644
index 0000000..1083c5b
--- /dev/null
+++ b/PocketSharp.Website/Assets/Stylesheets/Base/_buttons.scss
@@ -0,0 +1,41 @@
+
+
+.button, a.button
+{
+ height: 36px;
+ line-height: 36px;
+ padding: 0 15px;
+ color: white;
+ text-transform: uppercase;
+ text-decoration: none;
+ font-size: 1.1em;
+ font-weight: 500;
+
+ @extend %inlineBlock;
+ @extend %shortTransition;
+
+ &:hover
+ {
+ background-color: lighten($primaryColor, 5%);
+ }
+
+ i
+ {
+ margin-right: 10px;
+ }
+}
+
+.big-button, a.big-button
+{
+ @extend .button;
+
+ height: 50px;
+ line-height: 50px;
+ padding: 0 30px;
+ font-size: 1.3em;
+
+ i
+ {
+ margin: 0 20px 0 -10px;
+ }
+}
\ No newline at end of file
diff --git a/PocketSharp.Website/Assets/Stylesheets/Base/_typography.scss b/PocketSharp.Website/Assets/Stylesheets/Base/_typography.scss
new file mode 100644
index 0000000..60e2a6d
--- /dev/null
+++ b/PocketSharp.Website/Assets/Stylesheets/Base/_typography.scss
@@ -0,0 +1,88 @@
+
+// Segoe UI SemiLight
+@include fontFace( 'SegoeUI', 'SegoeUI-SemiLight-final', 300, normal );
+
+
+// Segoe UI Regular
+@include fontFace( 'SegoeUI', 'SegoeUI-Regular-final', 400, normal );
+
+
+// Segoe UI SemiBold
+@include fontFace( 'SegoeUI', 'SegoeUI-SemiBold-final', 500, normal );
+
+
+// Segoe UI Italic
+@include fontFace( 'SegoeUI', 'SegoeUI-Italic-final', 400, italic );
+
+
+// Entypo Icon Font
+@include fontFace( 'entypo', 'entypo', 400, normal );
+
+
+%iconFont
+{
+ &:before
+ {
+ font-family: 'entypo', sans-serif;
+ font-weight: 400 !important;
+ font-style: normal !important;
+ display: inline;
+ width: auto;
+ height: auto;
+ line-height: auto;
+ vertical-align: baseline;
+ text-decoration: none;
+ }
+}
+
+[class*="entypo-"]
+{
+ @extend %iconFont;
+}
+
+
+// default link style
+// mainly used for paragraphs
+a
+{
+ color: $primaryColor;
+ text-decoration: underline;
+ outline: 1px dotted transparent;
+ @extend %shortTransition;
+
+ &:link, &:hover, &:visited
+ {
+ outline: 1px dotted transparent;
+ }
+ &:hover
+ {
+ color: darken($primaryColor, 10%);
+ }
+ &:visited
+ {
+ color: desaturate(lighten($primaryColor, 20%), 20%);
+ }
+ &:focus
+ {
+ outline-color: desaturate(lighten($primaryColor, 30%), 20%);
+ }
+}
+
+
+// default style for headlines
+h1, h2, h3, h4, h5, h6
+{
+ margin: 0;
+ padding: 0;
+ font-weight: 300;
+
+ i
+ {
+ margin-right: 10px;
+ }
+}
+
+strong, b
+{
+ font-weight: 500 !important;
+}
diff --git a/PocketSharp.Website/Assets/Stylesheets/Config/_all.scss b/PocketSharp.Website/Assets/Stylesheets/Config/_all.scss
new file mode 100644
index 0000000..e0ca2c7
--- /dev/null
+++ b/PocketSharp.Website/Assets/Stylesheets/Config/_all.scss
@@ -0,0 +1,6 @@
+
+@import "colors";
+
+@import "placeholders";
+
+@import "functions";
\ No newline at end of file
diff --git a/PocketSharp.Website/Assets/Stylesheets/Config/_colors.scss b/PocketSharp.Website/Assets/Stylesheets/Config/_colors.scss
new file mode 100644
index 0000000..8795178
--- /dev/null
+++ b/PocketSharp.Website/Assets/Stylesheets/Config/_colors.scss
@@ -0,0 +1,8 @@
+
+$primaryColor: #50bbb4;
+
+$darkColor: #1f2424;
+
+$lightColor: #f4f8f8;
+
+$textColor: #5e6161;
\ No newline at end of file
diff --git a/PocketSharp.Website/Assets/Stylesheets/Config/_functions.scss b/PocketSharp.Website/Assets/Stylesheets/Config/_functions.scss
new file mode 100644
index 0000000..aa3e83c
--- /dev/null
+++ b/PocketSharp.Website/Assets/Stylesheets/Config/_functions.scss
@@ -0,0 +1,7 @@
+
+$em-base: 16px;
+
+@function emCalc($pxWidth)
+{
+ @return $pxWidth / $em-base * 1em;
+}
\ No newline at end of file
diff --git a/PocketSharp.Website/Assets/Stylesheets/Config/_placeholders.scss b/PocketSharp.Website/Assets/Stylesheets/Config/_placeholders.scss
new file mode 100644
index 0000000..b31079c
--- /dev/null
+++ b/PocketSharp.Website/Assets/Stylesheets/Config/_placeholders.scss
@@ -0,0 +1,55 @@
+
+
+%shortTransition
+{
+ @include transition(all 0.3s ease-in-out);
+}
+
+%antialiased
+{
+ -webkit-font-smoothing: antialiased;
+ font-smoothing: antialiased;
+}
+
+%inlineBlock
+{
+ display: inline-block;
+ *display: block;
+ *zoom: 1;
+}
+
+
+%clearfix
+{
+ *zoom:1;
+ &:before, &:after
+ {
+ content: " ";
+ display: table;
+ }
+ &:after
+ {
+ clear: both;
+ }
+}
+
+%resetLink
+{
+ &:link, &:hover, &:visited, &:focus
+ {
+ outline: 1px dotted transparent;
+ }
+ &:visited, &:hover
+ {
+ color: inherit;
+ }
+}
+
+
+// positioning
+%center
+{
+ margin: 0 auto;
+ width: 100%;
+ position: relative;
+}
\ No newline at end of file
diff --git a/PocketSharp.Website/Assets/Stylesheets/Interface/_all.scss b/PocketSharp.Website/Assets/Stylesheets/Interface/_all.scss
new file mode 100644
index 0000000..8696433
--- /dev/null
+++ b/PocketSharp.Website/Assets/Stylesheets/Interface/_all.scss
@@ -0,0 +1,6 @@
+
+@import "main";
+
+@import "header";
+
+@import "footer";
\ No newline at end of file
diff --git a/PocketSharp.Website/Assets/Stylesheets/Interface/_footer.scss b/PocketSharp.Website/Assets/Stylesheets/Interface/_footer.scss
new file mode 100644
index 0000000..e69de29
diff --git a/PocketSharp.Website/Assets/Stylesheets/Interface/_header.scss b/PocketSharp.Website/Assets/Stylesheets/Interface/_header.scss
new file mode 100644
index 0000000..e69de29
diff --git a/PocketSharp.Website/Assets/Stylesheets/Interface/_main.scss b/PocketSharp.Website/Assets/Stylesheets/Interface/_main.scss
new file mode 100644
index 0000000..4c935e4
--- /dev/null
+++ b/PocketSharp.Website/Assets/Stylesheets/Interface/_main.scss
@@ -0,0 +1,54 @@
+*
+{
+ @include box-sizing(border-box);
+}
+
+html
+{
+ height: 100%;
+}
+
+body
+{
+ line-height: 1;
+ color: $textColor;
+ height: 100%;
+ width: 100%;
+ position: relative;
+ font-family: 'Segoe UI', Arial, sans-serif;
+
+
+ -webkit-text-size-adjust: none;
+ -ms-text-size-adjust: none;
+ -ms-touch-action: double-tap-zoom;
+}
+
+html, body
+{
+ font-size: 100%;
+}
+
+// Get rid of gap under images by making them display: inline-block; by default
+img
+{
+ display: inline-block;
+ vertical-align: middle;
+ -ms-interpolation-mode: bicubic;
+}
+
+// Grid Defaults to get images and embeds to work properly
+img, object, embed
+{
+ max-width: 100%;
+ height: auto;
+}
+
+object, embed
+{
+ height: 100%;
+}
+
+.center
+{
+ text-align: center;
+}
\ No newline at end of file
diff --git a/PocketSharp.Website/Assets/Stylesheets/Mixins/_all.scss b/PocketSharp.Website/Assets/Stylesheets/Mixins/_all.scss
new file mode 100644
index 0000000..dbdb3bd
--- /dev/null
+++ b/PocketSharp.Website/Assets/Stylesheets/Mixins/_all.scss
@@ -0,0 +1,14 @@
+
+@import "fontface";
+
+@import "icon";
+
+@import "svg";
+
+@import "respond";
+
+@import "triangle";
+
+@import "customAnimation";
+
+@import "keyframes";
\ No newline at end of file
diff --git a/PocketSharp.Website/Assets/Stylesheets/Mixins/_customanimation.scss b/PocketSharp.Website/Assets/Stylesheets/Mixins/_customanimation.scss
new file mode 100644
index 0000000..e485b7e
--- /dev/null
+++ b/PocketSharp.Website/Assets/Stylesheets/Mixins/_customanimation.scss
@@ -0,0 +1,9 @@
+
+@mixin customAnimation($params)
+{
+ -webkit-animation: $params;
+ -moz-animation: $params;
+ -ms-animation: $params;
+ -o-animation: $params;
+ animation: $params;
+}
\ No newline at end of file
diff --git a/PocketSharp.Website/Assets/Stylesheets/Mixins/_fontface.scss b/PocketSharp.Website/Assets/Stylesheets/Mixins/_fontface.scss
new file mode 100644
index 0000000..09413fb
--- /dev/null
+++ b/PocketSharp.Website/Assets/Stylesheets/Mixins/_fontface.scss
@@ -0,0 +1,29 @@
+
+@mixin fontFace( $name, $filename, $weight: false, $style: false)
+{
+ @font-face
+ {
+ font-family: quote($name);
+
+ src: font-url("#{$filename}.eot");
+ src: font-url("#{$filename}.eot?#iefix") format("embedded-opentype"),
+ font-url("#{$filename}.woff") format("woff"),
+ font-url("#{$filename}.ttf") format("truetype"),
+ font-url('#{$filename}svg#fix') format('svg');
+
+ @if $weight
+ {
+ font-weight: $weight;
+ }
+ @if $style
+ {
+ font-style: $style;
+ }
+ }
+}
+
+@mixin resetFontForFontsCom
+{
+ font-weight: 400 !important;
+ font-style: normal !important;
+}
\ No newline at end of file
diff --git a/PocketSharp.Website/Assets/Stylesheets/Mixins/_icon.scss b/PocketSharp.Website/Assets/Stylesheets/Mixins/_icon.scss
new file mode 100644
index 0000000..ea244b3
--- /dev/null
+++ b/PocketSharp.Website/Assets/Stylesheets/Mixins/_icon.scss
@@ -0,0 +1,11 @@
+
+@mixin icon($type)
+{
+ @extend .entypo-#{$type};
+ @extend %iconFont;
+
+ &:before
+ {
+ @content;
+ }
+}
diff --git a/PocketSharp.Website/Assets/Stylesheets/Mixins/_keyframes.scss b/PocketSharp.Website/Assets/Stylesheets/Mixins/_keyframes.scss
new file mode 100644
index 0000000..468c1b9
--- /dev/null
+++ b/PocketSharp.Website/Assets/Stylesheets/Mixins/_keyframes.scss
@@ -0,0 +1,20 @@
+
+// originally by bourbon:
+// https://github.com/thoughtbot/bourbon/blob/master/app/assets/stylesheets/css3/_keyframes.scss
+
+// Adds keyframes blocks for supported prefixes, removing redundant prefixes in the block's content
+@mixin keyframes($name)
+{
+ @-webkit-keyframes #{$name} {
+ @content;
+ }
+ @-moz-keyframes #{$name} {
+ @content;
+ }
+ @-o-keyframes #{$name} {
+ @content;
+ }
+ @keyframes #{$name} {
+ @content;
+ }
+}
\ No newline at end of file
diff --git a/PocketSharp.Website/Assets/Stylesheets/Mixins/_respond.scss b/PocketSharp.Website/Assets/Stylesheets/Mixins/_respond.scss
new file mode 100644
index 0000000..81693a8
--- /dev/null
+++ b/PocketSharp.Website/Assets/Stylesheets/Mixins/_respond.scss
@@ -0,0 +1,6 @@
+
+@mixin respond($size)
+{
+ $query: "only screen and (max-width: #{$size})";
+ @media #{$query} { @content; }
+}
\ No newline at end of file
diff --git a/PocketSharp.Website/Assets/Stylesheets/Mixins/_svg.scss b/PocketSharp.Website/Assets/Stylesheets/Mixins/_svg.scss
new file mode 100644
index 0000000..f074121
--- /dev/null
+++ b/PocketSharp.Website/Assets/Stylesheets/Mixins/_svg.scss
@@ -0,0 +1,15 @@
+
+// svg with fallback
+@mixin svg( $file )
+{
+ .inlinesvg &
+ {
+ background: url('#{$svgPath}#{$file}.svg') no-repeat 0 0;
+
+ > img
+ {
+ opacity: 0;
+ //visibility: hidden;
+ }
+ }
+}
\ No newline at end of file
diff --git a/PocketSharp.Website/Assets/Stylesheets/Mixins/_triangle.scss b/PocketSharp.Website/Assets/Stylesheets/Mixins/_triangle.scss
new file mode 100644
index 0000000..dea127e
--- /dev/null
+++ b/PocketSharp.Website/Assets/Stylesheets/Mixins/_triangle.scss
@@ -0,0 +1,34 @@
+@mixin triangle($triangle-size, $triangle-color, $triangle-direction)
+{
+ &:after
+ {
+ content: " ";
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset $triangle-size;
+
+ @if ($triangle-direction == top)
+ {
+ border-color: $triangle-color transparent transparent transparent;
+ border-top-style: solid;
+ }
+ @if ($triangle-direction == bottom)
+ {
+ border-color: transparent transparent $triangle-color transparent;
+ border-bottom-style: solid;
+ }
+ @if ($triangle-direction == left)
+ {
+ border-color: transparent transparent transparent $triangle-color;
+ border-left-style: solid;
+ }
+ @if ($triangle-direction == right)
+ {
+ border-color: transparent $triangle-color transparent transparent;
+ border-right-style: solid;
+ }
+
+ @content;
+ }
+}
\ No newline at end of file
diff --git a/PocketSharp.Website/Assets/Stylesheets/Modules/_all.scss b/PocketSharp.Website/Assets/Stylesheets/Modules/_all.scss
new file mode 100644
index 0000000..e69de29
diff --git a/PocketSharp.Website/Assets/Stylesheets/Vendor/_all.scss b/PocketSharp.Website/Assets/Stylesheets/Vendor/_all.scss
new file mode 100644
index 0000000..91ea196
--- /dev/null
+++ b/PocketSharp.Website/Assets/Stylesheets/Vendor/_all.scss
@@ -0,0 +1,3 @@
+@import "normalize";
+
+@import "entypo";
\ No newline at end of file
diff --git a/PocketSharp.Website/Assets/Stylesheets/Vendor/_entypo.scss b/PocketSharp.Website/Assets/Stylesheets/Vendor/_entypo.scss
new file mode 100644
index 0000000..7b9d371
--- /dev/null
+++ b/PocketSharp.Website/Assets/Stylesheets/Vendor/_entypo.scss
@@ -0,0 +1,852 @@
+//.entypo-note:before {
+// content:"\266a"
+//}
+//.entypo-note-beamed:before {
+// content:"\266b"
+//}
+//.entypo-music:before {
+// content:"\1f3b5"
+//}
+//.entypo-search:before {
+// content:"\1f50d"
+//}
+//.entypo-flashlight:before {
+// content:"\1f526"
+//}
+.entypo-mail:before {
+ content:"\2709"
+}
+.entypo-heart:before {
+ content:"\2665"
+}
+//.entypo-heart-empty:before {
+// content:"\2661"
+//}
+//.entypo-star:before {
+// content:"\2605"
+//}
+//.entypo-star-empty:before {
+// content:"\2606"
+//}
+//.entypo-user:before {
+// content:"\1f464"
+//}
+//.entypo-users:before {
+// content:"\1f465"
+//}
+//.entypo-user-add:before {
+// content:"\e700"
+//}
+//.entypo-video:before {
+// content:"\1f3ac"
+//}
+//.entypo-picture:before {
+// content:"\1f304"
+//}
+//.entypo-camera:before {
+// content:"\1f4f7"
+//}
+//.entypo-layout:before {
+// content:"\268f"
+//}
+//.entypo-menu:before {
+// content:"\2630"
+//}
+.entypo-check:before {
+ content:"\2713"
+}
+.entypo-cancel:before {
+ content:"\2715"
+}
+//.entypo-cancel-circled:before {
+// content:"\2716"
+//}
+//.entypo-cancel-squared:before {
+// content:"\274e"
+//}
+//.entypo-plus:before {
+// content:"\2b"
+//}
+//.entypo-plus-circled:before {
+// content:"\2795"
+//}
+//.entypo-plus-squared:before {
+// content:"\229e"
+//}
+//.entypo-minus:before {
+// content:"\2d"
+//}
+//.entypo-minus-circled:before {
+// content:"\2796"
+//}
+//.entypo-minus-squared:before {
+// content:"\229f"
+//}
+//.entypo-help:before {
+// content:"\2753"
+//}
+//.entypo-help-circled:before {
+// content:"\e704"
+//}
+//.entypo-info:before {
+// content:"\2139"
+//}
+//.entypo-info-circled:before {
+// content:"\e705"
+//}
+//.entypo-back:before {
+// content:"\1f519"
+//}
+//.entypo-home:before {
+// content:"\2302"
+//}
+//.entypo-link:before {
+// content:"\1f517"
+//}
+//.entypo-attach:before {
+// content:"\1f4ce"
+//}
+//.entypo-lock:before {
+// content:"\1f512"
+//}
+//.entypo-lock-open:before {
+// content:"\1f513"
+//}
+//.entypo-eye:before {
+// content:"\e70a"
+//}
+//.entypo-tag:before {
+// content:"\e70c"
+//}
+//.entypo-bookmark:before {
+// content:"\1f516"
+//}
+//.entypo-bookmarks:before {
+// content:"\1f4d1"
+//}
+//.entypo-flag:before {
+// content:"\2691"
+//}
+//.entypo-thumbs-up:before {
+// content:"\1f44d"
+//}
+//.entypo-thumbs-down:before {
+// content:"\1f44e"
+//}
+//.entypo-download:before {
+// content:"\1f4e5"
+//}
+//.entypo-upload:before {
+// content:"\1f4e4"
+//}
+//.entypo-upload-cloud:before {
+// content:"\e711"
+//}
+//.entypo-reply:before {
+// content:"\e712"
+//}
+//.entypo-reply-all:before {
+// content:"\e713"
+//}
+//.entypo-forward:before {
+// content:"\27a6"
+//}
+//.entypo-quote:before {
+// content:"\275e"
+//}
+//.entypo-code:before {
+// content:"\e714"
+//}
+//.entypo-export:before {
+// content:"\e715"
+//}
+//.entypo-pencil:before {
+// content:"\270e"
+//}
+//.entypo-feather:before {
+// content:"\2712"
+//}
+//.entypo-print:before {
+// content:"\e716"
+//}
+//.entypo-retweet:before {
+// content:"\e717"
+//}
+//.entypo-keyboard:before {
+// content:"\2328"
+//}
+//.entypo-comment:before {
+// content:"\e718"
+//}
+//.entypo-chat:before {
+// content:"\e720"
+//}
+//.entypo-bell:before {
+// content:"\1f514"
+//}
+//.entypo-attention:before {
+// content:"\26a0"
+//}
+//.entypo-alert:before {
+// content:"\1f4a5'"
+//}
+//.entypo-vcard:before {
+// content:"\e722"
+//}
+//.entypo-address:before {
+// content:"\e723"
+//}
+//.entypo-location:before {
+// content:"\e724"
+//}
+//.entypo-map:before {
+// content:"\e727"
+//}
+//.entypo-direction:before {
+// content:"\27a2"
+//}
+//.entypo-compass:before {
+// content:"\e728"
+//}
+//.entypo-cup:before {
+// content:"\2615"
+//}
+//.entypo-trash:before {
+// content:"\e729"
+//}
+//.entypo-doc:before {
+// content:"\e730"
+//}
+//.entypo-docs:before {
+// content:"\e736"
+//}
+//.entypo-doc-landscape:before {
+// content:"\e737"
+//}
+//.entypo-doc-text:before {
+// content:"\1f4c4"
+//}
+//.entypo-doc-text-inv:before {
+// content:"\e731"
+//}
+//.entypo-newspaper:before {
+// content:"\1f4f0"
+//}
+//.entypo-book-open:before {
+// content:"\1f4d6"
+//}
+//.entypo-book:before {
+// content:"\1f4d5"
+//}
+//.entypo-folder:before {
+// content:"\1f4c1"
+//}
+//.entypo-archive:before {
+// content:"\e738"
+//}
+//.entypo-box:before {
+// content:"\1f4e6"
+//}
+//.entypo-rss:before {
+// content:"\e73a"
+//}
+//.entypo-phone:before {
+// content:"\e73a"
+//}
+//.entypo-cog:before {
+// content:"\2699"
+//}
+//.entypo-tools:before {
+// content:"\2692"
+//}
+//.entypo-share:before {
+// content:"\e73c"
+//}
+//.entypo-shareable:before {
+// content:"\e73e"
+//}
+//.entypo-basket:before {
+// content:"\e73d"
+//}
+//.entypo-bag:before {
+// content:"\1f45c'"
+//}
+//.entypo-calendar:before {
+// content:"\1f4c5"
+//}
+//.entypo-login:before {
+// content:"\e740"
+//}
+//.entypo-logout:before {
+// content:"\e741"
+//}
+//.entypo-mic:before {
+// content:"\1f3a4"
+//}
+//.entypo-mute:before {
+// content:"\1f507"
+//}
+//.entypo-sound:before {
+// content:"\1f50a"
+//}
+//.entypo-volume:before {
+// content:"\e742"
+//}
+//.entypo-clock:before {
+// content:"\1f554"
+//}
+//.entypo-hourglass:before {
+// content:"\23f3"
+//}
+//.entypo-lamp:before {
+// content:"\1f4a1"
+//}
+//.entypo-light-down:before {
+// content:"\1f505"
+//}
+//.entypo-light-up:before {
+// content:"\1f506"
+//}
+//.entypo-adjust:before {
+// content:"\25d1"
+//}
+//.entypo-block:before {
+// content:"\1f6ab"
+//}
+//.entypo-resize-full:before {
+// content:"\e744"
+//}
+//.entypo-resize-small:before {
+// content:"\e746"
+//}
+//.entypo-popup:before {
+// content:"\e74c"
+//}
+//.entypo-publish:before {
+// content:"\e74d"
+//}
+//.entypo-window:before {
+// content:"\e74e"
+//}
+//.entypo-arrow-combo:before {
+// content:"\e74f"
+//}
+//.entypo-down-circled:before {
+// content:"\e758"
+//}
+//.entypo-left-circled:before {
+// content:"\e759"
+//}
+//.entypo-right-circled:before {
+// content:"\e75a"
+//}
+//.entypo-up-circled:before {
+// content:"\e75b"
+//}
+.entypo-down-open:before {
+ content:"\e75c"
+}
+//.entypo-left-open:before {
+// content:"\e75d"
+//}
+//.entypo-right-open:before {
+// content:"\e75e"
+//}
+//.entypo-up-open:before {
+// content:"\e75f"
+//}
+//.entypo-down-open-mini:before {
+// content:"\e760"
+//}
+//.entypo-left-open-mini:before {
+// content:"\e761"
+//}
+.entypo-right-open-mini:before {
+ content:"\e762"
+}
+//.entypo-up-open-mini:before {
+// content:"\e763"
+//}
+//.entypo-down-open-big:before {
+// content:"\e764"
+//}
+//.entypo-left-open-big:before {
+// content:"\e765"
+//}
+.entypo-right-open-big:before {
+ content:"\e766"
+}
+//.entypo-up-open-big:before {
+// content:"\e767"
+//}
+//.entypo-down:before {
+// content:"\2b07"
+//}
+//.entypo-left:before {
+// content:"\2b05"
+//}
+//.entypo-right:before {
+// content:"\27a1"
+//}
+//.entypo-up:before {
+// content:"\2b06"
+//}
+//.entypo-down-dir:before {
+// content:"\25be"
+//}
+//.entypo-left-dir:before {
+// content:"\25c2"
+//}
+//.entypo-right-dir:before {
+// content:"\25b8"
+//}
+//.entypo-up-dir:before {
+// content:"\25b4"
+//}
+//.entypo-down-bold:before {
+// content:"\e4b0"
+//}
+//.entypo-left-bold:before {
+// content:"\e4ad"
+//}
+//.entypo-right-bold:before {
+// content:"\e4ae"
+//}
+//.entypo-up-bold:before {
+// content:"\e4af"
+//}
+//.entypo-down-thin:before {
+// content:"\2193"
+//}
+//.entypo-left-thin:before {
+// content:"\2190"
+//}
+//.entypo-right-thin:before {
+// content:"\2192"
+//}
+//.entypo-up-thin:before {
+// content:"\2191"
+//}
+//.entypo-ccw:before {
+// content:"\27f2"
+//}
+//.entypo-cw:before {
+// content:"\27f3"
+//}
+//.entypo-arrows-ccw:before {
+// content:"\1f504"
+//}
+//.entypo-level-down:before {
+// content:"\21b3"
+//}
+//.entypo-level-up:before {
+// content:"\21b0"
+//}
+//.entypo-shuffle:before {
+// content:"\1f500"
+//}
+//.entypo-loop:before {
+// content:"\1f501"
+//}
+//.entypo-switch:before {
+// content:"\21c6"
+//}
+//.entypo-play:before {
+// content:"\25b6"
+//}
+//.entypo-stop:before {
+// content:"\25a0"
+//}
+//.entypo-pause:before {
+// content:"\2389"
+//}
+//.entypo-record:before {
+// content:"\26ab"
+//}
+//.entypo-to-end:before {
+// content:"\23ed"
+//}
+//.entypo-to-start:before {
+// content:"\23ee"
+//}
+//.entypo-fast-forward:before {
+// content:"\23e9"
+//}
+//.entypo-fast-backward:before {
+// content:"\23ea"
+//}
+//.entypo-progress-0:before {
+// content:"\e768"
+//}
+//.entypo-progress-1:before {
+// content:"\e769"
+//}
+//.entypo-progress-2:before {
+// content:"\e76a"
+//}
+//.entypo-progress-3:before {
+// content:"\e76b"
+//}
+//.entypo-target:before {
+// content:"\1f3af"
+//}
+//.entypo-palette:before {
+// content:"\1f3a8"
+//}
+//.entypo-list:before {
+// content:"\e005"
+//}
+//.entypo-list-add:before {
+// content:"\e003"
+//}
+//.entypo-signal:before {
+// content:"\1f4f6"
+//}
+//.entypo-trophy:before {
+// content:"\1f3c6"
+//}
+//.entypo-battery:before {
+// content:"\1f50b"
+//}
+//.entypo-back-in-time:before {
+// content:"\e771"
+//}
+//.entypo-monitor:before {
+// content:"\1f4bb"
+//}
+//.entypo-mobile:before {
+// content:"\1f4f1"
+//}
+//.entypo-network:before {
+// content:"\e776"
+//}
+//.entypo-cd:before {
+// content:"\1f4bf"
+//}
+//.entypo-inbox:before {
+// content:"\e777"
+//}
+//.entypo-install:before {
+// content:"\e778"
+//}
+//.entypo-globe:before {
+// content:"\1f30e"
+//}
+//.entypo-cloud:before {
+// content:"\2601"
+//}
+//.entypo-cloud-thunder:before {
+// content:"\26c8"
+//}
+//.entypo-flash:before {
+// content:"\26a1"
+//}
+//.entypo-moon:before {
+// content:"\263d"
+//}
+//.entypo-flight:before {
+// content:"\2708"
+//}
+//.entypo-paper-plane:before {
+// content:"\e79b"
+//}
+//.entypo-leaf:before {
+// content:"\1f342"
+//}
+//.entypo-lifebuoy:before {
+// content:"\e788"
+//}
+//.entypo-mouse:before {
+// content:"\e789"
+//}
+//.entypo-briefcase:before {
+// content:"\1f4bc"
+//}
+//.entypo-suitcase:before {
+// content:"\e78e"
+//}
+//.entypo-dot:before {
+// content:"\e78b"
+//}
+//.entypo-dot-2:before {
+// content:"\e78c"
+//}
+//.entypo-dot-3:before {
+// content:"\e78d"
+//}
+//.entypo-brush:before {
+// content:"\e79a"
+//}
+//.entypo-magnet:before {
+// content:"\e7a1"
+//}
+//.entypo-infinity:before {
+// content:"\221e"
+//}
+//.entypo-erase:before {
+// content:"\232b"
+//}
+//.entypo-chart-pie:before {
+// content:"\e751"
+//}
+//.entypo-chart-line:before {
+// content:"\1f4c8"
+//}
+//.entypo-chart-bar:before {
+// content:"\1f4ca"
+//}
+//.entypo-chart-area:before {
+// content:"\1f53e"
+//}
+//.entypo-tape:before {
+// content:"\2707"
+//}
+//.entypo-graduation-cap:before {
+// content:"\1f393"
+//}
+//.entypo-language:before {
+// content:"\e752"
+//}
+//.entypo-ticket:before {
+// content:"\1f3ab"
+//}
+//.entypo-water:before {
+// content:"\1f4a6"
+//}
+//.entypo-droplet:before {
+// content:"\1f4a7"
+//}
+//.entypo-air:before {
+// content:"\e753"
+//}
+//.entypo-credit-card:before {
+// content:"\1f4b3"
+//}
+//.entypo-floppy:before {
+// content:"\1f4be"
+//}
+//.entypo-clipboard:before {
+// content:"\1f4cb"
+//}
+//.entypo-megaphone:before {
+// content:"\1f4e3"
+//}
+//.entypo-database:before {
+// content:"\e754"
+//}
+//.entypo-drive:before {
+// content:"\e755"
+//}
+//.entypo-bucket:before {
+// content:"\e756"
+//}
+//.entypo-thermometer:before {
+// content:"\e757"
+//}
+//.entypo-key:before {
+// content:"\1f511"
+//}
+//.entypo-flow-cascade:before {
+// content:"\e790"
+//}
+//.entypo-flow-branch:before {
+// content:"\e791"
+//}
+//.entypo-flow-tree:before {
+// content:"\e792"
+//}
+//.entypo-flow-line:before {
+// content:"\e793"
+//}
+//.entypo-flow-parallel:before {
+// content:"\e794"
+//}
+//.entypo-rocket:before {
+// content:"\1f680"
+//}
+//.entypo-gauge:before {
+// content:"\e7a2"
+//}
+//.entypo-traffic-cone:before {
+// content:"\e7a3"
+//}
+//.entypo-cc:before {
+// content:"\e7a5"
+//}
+//.entypo-cc-by:before {
+// content:"\e7a6"
+//}
+//.entypo-cc-nc:before {
+// content:"\e7a7"
+//}
+//.entypo-cc-nc-eu:before {
+// content:"\e7a8"
+//}
+//.entypo-cc-nc-jp:before {
+// content:"\e7a9"
+//}
+//.entypo-cc-sa:before {
+// content:"\e7aa"
+//}
+//.entypo-cc-nd:before {
+// content:"\e7ab"
+//}
+//.entypo-cc-pd:before {
+// content:"\e7ac"
+//}
+//.entypo-cc-zero:before {
+// content:"\e7ad"
+//}
+//.entypo-cc-share:before {
+// content:"\e7ae"
+//}
+//.entypo-cc-remix:before {
+// content:"\e7af"
+//}
+//.entypo-github:before {
+// content:"\f300"
+//}
+//.entypo-github-circled:before {
+// content:"\f301"
+//}
+//.entypo-flickr:before {
+// content:"\f303"
+//}
+//.entypo-flickr-circled:before {
+// content:"\f304"
+//}
+.entypo-vimeo:before {
+ content:"\f306"
+}
+//.entypo-vimeo-circled:before {
+// content:"\f307"
+//}
+.entypo-twitter:before {
+ content:"\f309"
+}
+//.entypo-twitter-circled:before {
+// content:"\f30a"
+//}
+.entypo-facebook:before {
+ content:"\f30c"
+}
+//.entypo-facebook-circled:before {
+// content:"\f30d"
+//}
+//.entypo-facebook-squared:before {
+// content:"\f30e"
+//}
+//.entypo-gplus:before {
+// content:"\f30f"
+//}
+//.entypo-gplus-circled:before {
+// content:"\f310"
+//}
+//.entypo-pinterest:before {
+// content:"\f312"
+//}
+//.entypo-pinterest-circled:before {
+// content:"\f313"
+//}
+//.entypo-tumblr:before {
+// content:"\f315"
+//}
+//.entypo-tumblr-circled:before {
+// content:"\f316"
+//}
+//.entypo-linkedin:before {
+// content:"\f318"
+//}
+//.entypo-linkedin-circled:before {
+// content:"\f319"
+//}
+//.entypo-dribbble:before {
+// content:"\f31b"
+//}
+//.entypo-dribbble-circled:before {
+// content:"\f31c"
+//}
+//.entypo-stumbleupon:before {
+// content:"\f31e"
+//}
+//.entypo-stumbleupon-circled:before {
+// content:"\f31f"
+//}
+//.entypo-lastfm:before {
+// content:"\f321"
+//}
+//.entypo-lastfm-circled:before {
+// content:"\f322"
+//}
+//.entypo-rdio:before {
+// content:"\f324"
+//}
+//.entypo-rdio-circled:before {
+// content:"\f325"
+//}
+//.entypo-spotify:before {
+// content:"\f327"
+//}
+//.entypo-spotify-circled:before {
+// content:"\f328"
+//}
+//.entypo-qq:before {
+// content:"\f32a"
+//}
+//.entypo-instagrem:before {
+// content:"\f32d"
+//}
+//.entypo-dropbox:before {
+// content:"\f330"
+//}
+//.entypo-evernote:before {
+// content:"\f333"
+//}
+//.entypo-flattr:before {
+// content:"\f336"
+//}
+//.entypo-skype:before {
+// content:"\f339"
+//}
+//.entypo-skype-circled:before {
+// content:"\f33a"
+//}
+//.entypo-renren:before {
+// content:"\f33c"
+//}
+//.entypo-sina-weibo:before {
+// content:"\f33f"
+//}
+//.entypo-paypal:before {
+// content:"\f342"
+//}
+//.entypo-picasa:before {
+// content:"\f345"
+//}
+//.entypo-soundcloud:before {
+// content:"\f348"
+//}
+//.entypo-mixi:before {
+// content:"\f34b"
+//}
+//.entypo-behance:before {
+// content:"\f34e"
+//}
+//.entypo-google-circles:before {
+// content:"\f351"
+//}
+//.entypo-vkontakte:before {
+// content:"\f354"
+//}
+//.entypo-smashing:before {
+// content:"\f357"
+//}
+//.entypo-sweden:before {
+// content:"\f601"
+//}
+//.entypo-db-shape:before {
+// content:"\f600"
+//}
+//.entypo-logo-db:before {
+// content:"\f603"
+//}
diff --git a/PocketSharp.Website/Assets/Stylesheets/Vendor/_normalize.scss b/PocketSharp.Website/Assets/Stylesheets/Vendor/_normalize.scss
new file mode 100644
index 0000000..d1e1e2d
--- /dev/null
+++ b/PocketSharp.Website/Assets/Stylesheets/Vendor/_normalize.scss
@@ -0,0 +1,394 @@
+/* ==========================================================================
+ HTML5 display definitions
+ ========================================================================== */
+
+/**
+ * Correct `block` display not defined in IE 8/9.
+ */
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+nav,
+section,
+summary {
+ display: block;
+}
+
+/**
+ * Correct `inline-block` display not defined in IE 8/9.
+ */
+
+audio,
+canvas,
+video {
+ display: inline-block;
+}
+
+/**
+ * Prevent modern browsers from displaying `audio` without controls.
+ * Remove excess height in iOS 5 devices.
+ */
+
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+
+/**
+ * Address styling not present in IE 8/9.
+ */
+
+[hidden] {
+ display: none;
+}
+
+/* ==========================================================================
+ Base
+ ========================================================================== */
+
+/**
+ * 1. Set default font family to sans-serif.
+ * 2. Prevent iOS text size adjust after orientation change, without disabling
+ * user zoom.
+ */
+
+html {
+ font-family: sans-serif; /* 1 */
+ -ms-text-size-adjust: 100%; /* 2 */
+ -webkit-text-size-adjust: 100%; /* 2 */
+}
+
+/**
+ * Remove default margin.
+ */
+
+body {
+ margin: 0;
+}
+
+/* ==========================================================================
+ Links
+ ========================================================================== */
+
+/**
+ * Address `outline` inconsistency between Chrome and other browsers.
+ */
+
+a:focus {
+ outline: thin dotted;
+}
+
+/**
+ * Improve readability when focused and also mouse hovered in all browsers.
+ */
+
+a:active,
+a:hover {
+ outline: 0;
+}
+
+/* ==========================================================================
+ Typography
+ ========================================================================== */
+
+/**
+ * Address variable `h1` font-size and margin within `section` and `article`
+ * contexts in Firefox 4+, Safari 5, and Chrome.
+ */
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+
+/**
+ * Address styling not present in IE 8/9, Safari 5, and Chrome.
+ */
+
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+
+/**
+ * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
+ */
+
+b,
+strong {
+ font-weight: bold;
+}
+
+/**
+ * Address styling not present in Safari 5 and Chrome.
+ */
+
+dfn {
+ font-style: italic;
+}
+
+/**
+ * Address differences between Firefox and other browsers.
+ */
+
+hr {
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ height: 0;
+}
+
+/**
+ * Address styling not present in IE 8/9.
+ */
+
+mark {
+ background: #ff0;
+ color: #000;
+}
+
+/**
+ * Correct font family set oddly in Safari 5 and Chrome.
+ */
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, serif;
+ font-size: 1em;
+}
+
+/**
+ * Improve readability of pre-formatted text in all browsers.
+ */
+
+pre {
+ white-space: pre-wrap;
+}
+
+/**
+ * Set consistent quote types.
+ */
+
+q {
+ quotes: "\201C" "\201D" "\2018" "\2019";
+}
+
+/**
+ * Address inconsistent and variable font size in all browsers.
+ */
+
+small {
+ font-size: 80%;
+}
+
+/**
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
+ */
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sup {
+ top: -0.5em;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+/* ==========================================================================
+ Embedded content
+ ========================================================================== */
+
+/**
+ * Remove border when inside `a` element in IE 8/9.
+ */
+
+img {
+ border: 0;
+}
+
+/**
+ * Correct overflow displayed oddly in IE 9.
+ */
+
+svg:not(:root) {
+ overflow: hidden;
+}
+
+/* ==========================================================================
+ Figures
+ ========================================================================== */
+
+/**
+ * Address margin not present in IE 8/9 and Safari 5.
+ */
+
+figure {
+ margin: 0;
+}
+
+/* ==========================================================================
+ Forms
+ ========================================================================== */
+
+/**
+ * Define consistent border, margin, and padding.
+ */
+
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+
+/**
+ * 1. Correct `color` not being inherited in IE 8/9.
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
+ */
+
+legend {
+ border: 0; /* 1 */
+ padding: 0; /* 2 */
+}
+
+/**
+ * 1. Correct font family not being inherited in all browsers.
+ * 2. Correct font size not being inherited in all browsers.
+ * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
+ */
+
+button,
+input,
+select,
+textarea {
+ font-family: inherit; /* 1 */
+ font-size: 100%; /* 2 */
+ margin: 0; /* 3 */
+}
+
+/**
+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
+ * the UA stylesheet.
+ */
+
+button,
+input {
+ line-height: normal;
+}
+
+/**
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
+ * All other form control elements do not inherit `text-transform` values.
+ * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
+ * Correct `select` style inheritance in Firefox 4+ and Opera.
+ */
+
+button,
+select {
+ text-transform: none;
+}
+
+/**
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
+ * and `video` controls.
+ * 2. Correct inability to style clickable `input` types in iOS.
+ * 3. Improve usability and consistency of cursor style between image-type
+ * `input` and others.
+ */
+
+button,
+html input[type="button"], /* 1 */
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button; /* 2 */
+ cursor: pointer; /* 3 */
+}
+
+/**
+ * Re-set default cursor for disabled elements.
+ */
+
+button[disabled],
+html input[disabled] {
+ cursor: default;
+}
+
+/**
+ * 1. Address box sizing set to `content-box` in IE 8/9.
+ * 2. Remove excess padding in IE 8/9.
+ */
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box; /* 1 */
+ padding: 0; /* 2 */
+}
+
+/**
+ * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
+ * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
+ * (include `-moz` to future-proof).
+ */
+
+input[type="search"] {
+ -webkit-appearance: textfield; /* 1 */
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box; /* 2 */
+ box-sizing: content-box;
+}
+
+/**
+ * Remove inner padding and search cancel button in Safari 5 and Chrome
+ * on OS X.
+ */
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+/**
+ * Remove inner padding and border in Firefox 4+.
+ */
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+
+/**
+ * 1. Remove default vertical scrollbar in IE 8/9.
+ * 2. Improve readability and alignment in all browsers.
+ */
+
+textarea {
+ overflow: auto; /* 1 */
+ vertical-align: top; /* 2 */
+}
+
+/* ==========================================================================
+ Tables
+ ========================================================================== */
+
+/**
+ * Remove most spacing between table cells.
+ */
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
\ No newline at end of file
diff --git a/PocketSharp.Website/Assets/Stylesheets/app.scss b/PocketSharp.Website/Assets/Stylesheets/app.scss
new file mode 100644
index 0000000..7cfcfdd
--- /dev/null
+++ b/PocketSharp.Website/Assets/Stylesheets/app.scss
@@ -0,0 +1,23 @@
+@charset "UTF-8";
+
+// SASS framework
+// http://compass-style.org/
+@import "compass";
+
+// all vendor styles
+@import "Vendor/all";
+
+// custom mixins
+@import "Mixins/all";
+
+// configuration
+@import "Config/all";
+
+// general styles
+@import "Base/all";
+
+// this is the main layout
+@import "Interface/all";
+
+// modules
+@import "Modules/all";
\ No newline at end of file
diff --git a/PocketSharp.Website/Gemfile b/PocketSharp.Website/Gemfile
new file mode 100644
index 0000000..7383b31
--- /dev/null
+++ b/PocketSharp.Website/Gemfile
@@ -0,0 +1,5 @@
+source 'http://rubygems.org'
+
+gem 'sass'
+gem 'compass', :require => 'sass'
+gem 'zurb-foundation', '3.2.5'
\ No newline at end of file
diff --git a/PocketSharp.Website/Gemfile.lock b/PocketSharp.Website/Gemfile.lock
new file mode 100644
index 0000000..90faea3
--- /dev/null
+++ b/PocketSharp.Website/Gemfile.lock
@@ -0,0 +1,30 @@
+GEM
+ remote: http://rubygems.org/
+ specs:
+ chunky_png (1.2.8)
+ compass (0.12.2)
+ chunky_png (~> 1.2)
+ fssm (>= 0.2.7)
+ sass (~> 3.1)
+ fssm (0.2.10)
+ modular-scale (1.0.6)
+ compass (>= 0.12.1)
+ sass (>= 3.2.0)
+ sassy-math (>= 1.5)
+ rake (10.1.0)
+ sass (3.2.9)
+ sassy-math (1.5)
+ compass (~> 0.11)
+ zurb-foundation (3.2.5)
+ compass (>= 0.12.2)
+ modular-scale (= 1.0.6)
+ rake
+ sass (>= 3.2.0)
+
+PLATFORMS
+ x86-mingw32
+
+DEPENDENCIES
+ compass
+ sass
+ zurb-foundation (= 3.2.5)
diff --git a/PocketSharp.Website/Gruntfile.js b/PocketSharp.Website/Gruntfile.js
new file mode 100644
index 0000000..d60af47
--- /dev/null
+++ b/PocketSharp.Website/Gruntfile.js
@@ -0,0 +1,132 @@
+
+
+module.exports = function(grunt)
+{
+ 'use strict';
+
+ // configuration for grunt
+ grunt.initConfig({
+
+ // loads the package configuration file
+ pkg: grunt.file.readJSON('package.json'),
+
+
+ // concatenate files
+ concat: {
+ debug: {
+ src: [ 'Assets/Javascripts/**/*.js' ],
+ dest: 'Debug/app.js'
+ }
+ },
+
+
+ // uglifier options
+ uglify: {
+ options: {
+ banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
+ },
+ debug: {
+ src: '<%= concat.debug.src %>',
+ dest: 'Release/app.js'
+ }
+ },
+
+
+ // compile compass files
+ compass: {
+ debug: {
+ options: {
+ sassDir: 'Assets/Stylesheets',
+ cssDir: 'Debug',
+ imagesDir: 'Assets/Images',
+ fontDir: 'Assets/Fonts',
+ javascriptsDir: 'Assets/Javascripts',
+ outputStyle: 'expanded',
+ environment: 'development',
+ require: [
+ 'zurb-foundation'
+ ]
+ }
+ },
+ release: {
+ options: {
+ sassDir: 'Assets/Stylesheets',
+ cssDir: 'Release',
+ imagesDir: 'Assets/Images',
+ fontDir: 'Assets/Fonts',
+ javascriptsDir: 'Assets/Javascripts',
+ outputStyle: 'compressed',
+ environment: 'production',
+ require: [
+ 'zurb-foundation'
+ ]
+ }
+ }
+ },
+
+
+ // hint all the JS files
+ jshint: {
+ files: [],
+ options: {
+ globals: {
+ jQuery: true,
+ console: true,
+ module: true,
+ document: true
+ }
+ }
+ },
+
+
+ // image optimization for dist
+ imagemin: {
+ release: {
+ options: {
+ optimizationLevel: 3
+ },
+ files: []
+ }
+ },
+
+
+ // watch file changes to automate tasks
+ watch: {
+ js: {
+ files: [ '<%= concat.debug.src %>' ],
+ tasks: [ 'concat' ]
+ },
+ sass: {
+ files: [ '<%= compass.debug.options.sassDir %>/**/*.scss' ],
+ tasks: [ 'compass:debug' ]
+ }
+ }
+ });
+
+
+ // load tasks
+ grunt.loadNpmTasks('grunt-contrib-uglify');
+ grunt.loadNpmTasks('grunt-contrib-concat');
+ grunt.loadNpmTasks('grunt-contrib-jshint');
+ grunt.loadNpmTasks('grunt-contrib-watch');
+ grunt.loadNpmTasks('grunt-contrib-compass');
+ grunt.loadNpmTasks('grunt-contrib-imagemin');
+ grunt.loadNpmTasks('grunt-contrib-handlebars');
+ grunt.loadNpmTasks('grunt-contrib-copy');
+ grunt.loadNpmTasks('grunt-datauri');
+
+
+ // build task, which generates the development JS
+ grunt.registerTask('debug', [
+ 'concat',
+ 'compass:debug'
+ ]);
+
+ // distribution task
+ grunt.registerTask('release', [
+ 'concat',
+ 'uglify',
+ 'compass:release'
+ ]);
+
+};
diff --git a/PocketSharp.Website/WebWorkbench.mswwsettings b/PocketSharp.Website/WebWorkbench.mswwsettings
new file mode 100644
index 0000000..a6e76a9
--- /dev/null
+++ b/PocketSharp.Website/WebWorkbench.mswwsettings
@@ -0,0 +1 @@
+
C# assembly for accessing the pocket API
- -This project is maintained by ceee
- - --- -This project is work in progress. -PocketSharp will be released as a NuGet package when ready.
-
PocketSharp is a C#.NET class library, that integrates the Pocket API v3 and consists of 4 parts:
- -If you don't know Pocket, be sure to check it out. It's an awesome service that lets you save articles, videos, ... in the cloud and access it from all your devices.
- -Request a Consumer Key on Pocket.
- -Include the PocketSharp namespace and it's associated models (you will need them later):
- -using PocketSharp;
-using PocketSharp.Models;
-Initialize PocketClient with:
- -PocketClient _client = new PocketClient("[YOUR_CONSUMER_KEY]", "[YOUR_ACCESS_CODE]");
-Do a simple request - e.g. a search for CSS:
_client.Search("css").ForEach(
- item => Console.WriteLine(item.ID + " | " + item.Title)
-);
-Which will output:
- -330361896 | CSS Front-end Frameworks with comparison : By usabli.ca
-345541438 | Editr - HTML, CSS, JavaScript playground
-251743431 | CSS Architecture
-343693149 | CSS3 Transitions - Thank God We Have A Specification!
-...
-
-
-Constructor:
- -PocketClient(string consumerKey, string accessCode = null, Uri callbackUri = null)
-consumerKey: The API key
-accessCode: Provide an access code if the user is already authenticated
-callbackUri: The callback URL is called by Pocket after authentication
Example:
- -PocketClient _client = new PocketClient(
- consumerKey: "123498237423498723498723",
- callbackUri: new Uri("http://ceecore.com"),
- accessCode: "097809-oi987-izi8-jk98-oiuu89"
-);
-You can change the Access Code after initialization:
- -_client.AccessCode = "[YOU_ACCESS_CODE]";
-Before authentication you will need to provide the callbackUri for authentication requests.
-
After authentication you will need to provide the accessCode.
In order to communicate with a Pocket User, you will need a consumer key (which is generated by creating a new application on Pocket) and an Access Code.
- -The authentication is a 3-step process:
- -Receive the request code and authentication URI from the library by calling string GetRequestCode():
string requestCode = _client.GetRequestCode();
-// 0f453f2d-1605-8584-28fd-39af8e
-Uri authenticationUri = _client.GenerateAuthenticationUri();
-// https://getpocket.com/auth/authorize?request_token=0f453f2d-1605-8584-28fd-39af8e&redirect_uri=http%253a%252f%252fceecore.com
-The request code is stored internally, but you can also provide it as param in GenerateAuthenticationUri(string requestCode = null).
Next you need to redirect the user to the authenticationUri, which displays a prompt to grant permissions for the application (see image). After the user granted or denied, he/she is redirected to the callbackUri.

Call string GetAccessCode(string requestCode = null)
string accessCode = _client.GetAccessCode();
-// fa8bfc16-69b3-4d22-7db7-84a58d
-Again, the received access code is stored internally.
-Note that GetAccessCode can only be called with an existing request code. If you need to re-authenticate a user, start again with Step 1).
Be sure to permanently store the Access Code for your user.
-
-Without it you would always have to redo the authentication process.
Get list of all items:
- -List<PocketItem> items = _client.Retrieve();
-// equivalent to: _client.Retrieve(RetrieveFilter.All)
-Find items by a tag:
- -List<PocketItem> items = _client.SearchByTag("tutorial");
-Find items by a search string:
- -List<PocketItem> items = _client.Search("css");
-Find items by a filter:
- -List<PocketItem> items = _client.Retrieve(RetrieveFilter.Favorite); // only favorites
-The RetrieveFilter Enum is specified as follows:
- -enum RetrieveFilter { All, Unread, Archive, Favorite, Article, Video, Image }
-You can create a completely custom parameter list for retrieval with the POCO RetrieveParameters:
var parameters = new RetrieveParameters()
-{
- Count = 50,
- Offset = 100,
- Sort = SortEnum.oldest
- ...
-};
-
-List<PocketItem> items = _client.Retrieve(parameters);
-Adds a new item to your pocket list.
-Accepts four parameters, with uri being required.
PocketItem Add(Uri uri, string[] tags = null, string title = null, string tweetID = null)
-Example:
- -PocketItem newItem = _client.Add(
- new Uri("http://www.neowin.net/news/full-build-2013-conference-sessions-listing-revealed"),
- new string[] { "microsoft", "neowin", "build" }
-);
-The title can be included for cases where an item does not have a title, which is typical for image or PDF URLs. If Pocket detects a title from the content of the page, this parameter will be ignored.
- -If you are adding Pocket support to a Twitter client, please send along a reference to the tweet status id (with the tweetID). This allows Pocket to show the original tweet alongside the article.
- -All Modify methods accept either the itemID (as int) or a PocketItem as parameter.
Archive the specified item:
- -bool isSuccess = _client.Archive(myPocketItem);
-
-
-Un-archive the specified item:
- -bool isSuccess = _client.Unarchive(myPocketItem);
-
-
-Favorites the specified item:
- -bool isSuccess = _client.Favorite(myPocketItem);
-
-
-Un-favorites the specified item:
- -bool isSuccess = _client.Unfavorite(myPocketItem);
-
-
-Deletes the specified item:
- -bool isSuccess = _client.Delete(myPocketItem);
-
-
-Add tags to the specified item:
- -bool isSuccess = _client.AddTags(myPocketItem, new string[] { "css", "2013" });
-
-
-Remove tags from the specified item:
- -bool isSuccess = _client.RemoveTags(myPocketItem, new string[] { "css", "2013" });
-
-
-Remove all tags from the specified item:
- -bool isSuccess = _client.RemoveTags(myPocketItem);
-
-
-Replaces all existing tags with new ones for the specified item:
- -bool isSuccess = _client.ReplaceTags(myPocketItem, new string[] { "css", "2013" });
-
-
-Renames a tag for the specified item:
- -bool isSuccess = _client.RenameTag(myPocketItem, "oldTagName", "newTagName");
-
-
-| Tobias Klika @ceee | -