full frontend separation (you must be 18+ to view this commit)

This commit is contained in:
Jeremy Kauffman 2016-03-15 12:05:11 -04:00
parent 62ba2b8585
commit 5b2867f830
53 changed files with 2056 additions and 29 deletions

3
.gitignore vendored
View file

@ -0,0 +1,3 @@
dist/css/*
dist/js/*
.sass-cache

View file

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View file

Before

Width:  |  Height:  |  Size: 306 KiB

After

Width:  |  Height:  |  Size: 306 KiB

BIN
dist/img/busy.gif vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View file

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View file

Before

Width:  |  Height:  |  Size: 2 KiB

After

Width:  |  Height:  |  Size: 2 KiB

View file

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View file

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

View file

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

View file

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 8.5 KiB

View file

Before

Width:  |  Height:  |  Size: 9 KiB

After

Width:  |  Height:  |  Size: 9 KiB

View file

Before

Width:  |  Height:  |  Size: 9 KiB

After

Width:  |  Height:  |  Size: 9 KiB

View file

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View file

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View file

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View file

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View file

Before

Width:  |  Height:  |  Size: 4 KiB

After

Width:  |  Height:  |  Size: 4 KiB

View file

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

View file

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

View file

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

View file

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View file

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View file

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

View file

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

Before

Width:  |  Height:  |  Size: 4 KiB

After

Width:  |  Height:  |  Size: 4 KiB

View file

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View file

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

View file

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View file

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

View file

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View file

Before

Width:  |  Height:  |  Size: 992 KiB

After

Width:  |  Height:  |  Size: 992 KiB

View file

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

View file

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

View file

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

27
dist/index.html vendored Normal file
View file

@ -0,0 +1,27 @@
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<title>LBRY</title>
<link href='https://fonts.googleapis.com/css?family=Raleway:600,300' rel='stylesheet' type='text/css'>
<link href="./css/all.css" rel="stylesheet" type="text/css" media="screen,print" />
<link rel="icon" type="image/png" href="./img/fav/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="./img/fav/favicon-194x194.png" sizes="194x194">
<link rel="icon" type="image/png" href="./img/fav/favicon-96x96.png" sizes="96x96">
<link rel="icon" type="image/png" href="./img/fav/android-chrome-192x192.png" sizes="192x192">
<link rel="icon" type="image/png" href="./img/fav/favicon-16x16.png" sizes="16x16">
<meta name="msapplication-TileColor" content="#155B4A">
<meta name="msapplication-TileImage" content="/img/fav/mstile-144x144.png">
<meta name="theme-color" content="#155B4A">
</head>
<body>
<div id="canvas"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.6/react.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.6/react-dom.js"></script>
<script src="./js/mimic.js"></script>
<script src="./js/lbry.js"></script>
<script src="./js/gui.js"></script>
</body>
</html>

View file

@ -1,28 +0,0 @@
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<title>LBRY</title>
<link href='https://fonts.googleapis.com/css?family=Raleway:600,300' rel='stylesheet' type='text/css'>
<link href="../../web/css/app/all.css" rel="stylesheet" type="text/css" media="screen,print" />
<link rel="icon" type="image/png" href="../../web/img/fav/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="../../web/img/fav/favicon-194x194.png" sizes="194x194">
<link rel="icon" type="image/png" href="../../web/img/fav/favicon-96x96.png" sizes="96x96">
<link rel="icon" type="image/png" href="../../web/img/fav/android-chrome-192x192.png" sizes="192x192">
<link rel="icon" type="image/png" href=".../../web/img/fav/favicon-16x16.png" sizes="16x16">
<meta name="msapplication-TileColor" content="#155B4A">
<meta name="msapplication-TileImage" content="/img/fav/mstile-144x144.png">
<meta name="theme-color" content="#155B4A">
</head>
<body>
<div id="canvas"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.6/react.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.6/react-dom.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.min.js"></script>
<script src="../../web/js/gui/mimic.js"></script>
<script src="../../web/js/gui/lbry.js"></script>
<script type="text/babel" src="../../web/js/gui/gui.js"></script>
</body>
</html>

View file

@ -1,6 +1,6 @@
var lbry = {
isConnected: false,
rootPath: '../../web/',
rootPath: '.',
colors: {
primary: '#155B4A'
}

115
scss/_global.scss Normal file
View file

@ -0,0 +1,115 @@
@charset "UTF-8";
$spacing-vertical: 24px;
$color-primary: #155B4A;
$color-light-alt: hsl(hue($color-primary), 15, 85);
$color-text-dark: #000;
$color-money: #216C2A;
$color-meta-light: #505050;
$font-size: 18px;
$mobile-width-threshold: 801px;
$max-content-width: 1000px;
$max-text-width: 660px;
@mixin clearfix()
{
&:before, &:after
{
content: " ";
display: table;
}
&:after
{
clear: both;
}
}
@mixin border-radius($radius)
{
-webkit-border-radius: $radius;
-moz-border-radius: $radius;
-ms-border-radius: $radius;
border-radius: $radius;
}
@mixin display-flex()
{
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
}
@mixin flex($columns)
{
-webkit-flex: $columns;
-moz-flex: $columns;
-ms-flex: $columns;
flex: $columns;
}
@mixin flex-flow($flow) {
-webkit-flex-flow: $flow;
-moz-flex-flow: $flow;
-ms-flex-flow: $flow;
flex-flow: $flow;
}
@mixin flex-direction($direction) {
-webkit-flex-direction: $direction;
-moz-flex-direction: $direction;
-ms-flex-direction: $direction;
flex-direction: $direction;
}
@mixin absolute-center()
{
@include display-flex();
-webkit-box-align: center;
-moz-box-align: center;
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;
-webkit-box-pack: center;
-moz-box-pack: center;
-ms-flex-pack: center;
-webkit-justify-content: center;
justify-content: center;
}
@mixin linear-gradient($from-color, $to-color) {
background-color: $to-color; /* Fallback Color */
background-image: -webkit-linear-gradient(top, $from-color, $to-color); /* Chrome 10+, Saf5.1+, iOS 5+ */
background-image: -moz-linear-gradient(top, $from-color, $to-color); /* FF3.6 */
background-image: -ms-linear-gradient(top, $from-color, $to-color); /* IE10 */
background-image: linear-gradient(top, $from-color, $to-color);
}
@mixin box-sizing( $type: border-box ) {
-webkit-box-sizing: $type;
-moz-box-sizing: $type;
-o-box-sizing: $type;
-ms-box-sizing: $type;
box-sizing: $type;
}
@mixin background-size ($size) {
-webkit-background-size: $size;
-moz-background-size: $size;
-o-background-size: $size;
background-size: $size;
}
@mixin offscreen() {
position: absolute;
left: -9999px;
top:auto;
width:1px;
height:1px;
overflow:hidden;
}

87
scss/_grid.scss Normal file
View file

@ -0,0 +1,87 @@
@import "global";
$gutter_fluid: 4;
[class*="span"] {
min-height: 1px;
max-width: 100%;
}
.span12 { width: 100%; }
.span11 { width: 91.666%; }
.span10 { width: 83.333%; }
.span9 { width: 75%; }
.span8 { width: 66.666%; }
.span7 { width: 58.333%; }
.span6 { width: 50%; }
.span5 { width: 41.666%; }
.span4 { width: 33.333%; }
.span3 { width: 25%; }
.span2 { width: 16.666%; }
.span1 { width: 8.333%; }
.row-fluid {
width: 100%;
> [class*="span"] {
float: left;
width: 100%;
margin-left: 1% * $gutter_fluid;
&:first-child
{
margin-left: 0;
}
}
$column_width: (100% - $gutter_fluid * 11) / 12;
> .span12 { width: $column_width * 12 + $gutter_fluid * 11; }
> .span11 { width: $column_width * 11 + $gutter_fluid * 10; }
> .span10 { width: $column_width * 10 + $gutter_fluid * 9; }
> .span9 { width: $column_width * 9 + $gutter_fluid * 8; }
> .span8 { width: $column_width * 8 + $gutter_fluid * 7; }
> .span7 { width: $column_width * 7 + $gutter_fluid * 6; }
> .span6 { width: $column_width * 6 + $gutter_fluid * 5; }
> .span5 { width: $column_width * 5 + $gutter_fluid * 4; }
> .span4 { width: $column_width * 4 + $gutter_fluid * 3; }
> .span3 { width: $column_width * 3 + $gutter_fluid * 2; }
> .span2 { width: $column_width * 2 + $gutter_fluid * 1; }
> .span1 { width: $column_width; }
}
.tile-fluid {
width: 100%;
> [class*="span"] {
float: left;
}
}
.column-fluid {
@include display-flex();
flex-wrap: wrap;
> [class*="span"] {
@include display-flex();
@include flex(1 0 auto);
overflow: hidden;
justify-content: center;
}
}
.row-fluid, .tile-fluid {
@include clearfix();
}
@media (max-width: $mobile-width-threshold) {
.row-fluid, .tile-fluid, .column-fluid {
width: 100%;
}
.pull-left, .pull-right
{
float: none;
}
[class*="span"] {
float: none !important;
width: 100% !important;
margin-left: 0 !important;
display: block !important;
}
}

97
scss/_gui.scss Normal file
View file

@ -0,0 +1,97 @@
@import "global";
html
{
height: 100%;
font-size: $font-size;
}
body
{
font-family: 'Raleway', sans-serif;
line-height: 1.3333;
min-height: 100%;
position: relative;
}
h1 { font-size: 2.0em; }
h2 { font-size: 1.75em; }
h3 { font-size: 1.4em; }
h4 { font-size: 1.2em; }
h5 { font-size: 1.1em; }
sup, sub {
vertical-align: baseline;
position: relative;
}
sup { top: -0.4em; }
sub { top: 0.4em; }
input[type="search"]
{
border: 0 none;
border: 1px solid rgba(160,160,160,.5);
padding-left: 5px;
padding-right: 5px;
height: $spacing-vertical * 1.5;
}
.busy-indicator
{
background: url('../img/busy.gif') no-repeat center center;
display: inline-block;
margin: -1em 0;
min-width: 16px;
min-height: 8px;
vertical-align: middle;
padding: 0 30px;
&:last-child
{
padding-right: 2px;
}
&:first-child
{
padding-left: 2px;
}
}
.button-block
{
cursor: pointer;
display: inline-block;
height: $spacing-vertical * 1.5;
line-height: $spacing-vertical * 1.5;
padding: 0 15px;
text-decoration: none;
border: 0 none;
text-align: center;
+ .button-block
{
margin-left: 20px;
}
.icon:first-child
{
padding-right: 5px;
}
.icon:last-child
{
padding-left: 5px;
}
}
.button-primary
{
color: white;
@include linear-gradient(lighten($color-primary, 5), darken($color-primary, 5));
background-color: $color-primary;
border: 1px solid black;
}
.button-alt
{
@include linear-gradient(lighten($color-light-alt, 5), darken($color-light-alt, 5));
color: hsl(hue($color-primary), 85, 15);
border: 1px solid darken($color-primary, 10);
}
.button-text
{
color: $color-primary;
text-decoration: underline;
}

1666
scss/_icons.scss Normal file

File diff suppressed because it is too large Load diff

44
scss/_reset.scss Normal file
View file

@ -0,0 +1,44 @@
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, select, textarea, p, blockquote, th, td, iframe
{
margin:0;
padding:0;
}
input:focus, textarea:focus
{
outline: 0;
}
table
{
border-collapse: collapse;
border-spacing:0;
}
fieldset, img, iframe
{
border: 0;
}
h1, h2, h3, h4, h5, h6
{
font-weight:normal;
}
ol, ul
{
list-style-position: inside;
> li { list-style-position: inside; }
}
input, textarea, select
{
font-family:inherit;
font-size:inherit;
font-weight:inherit;
}
img {
width: auto\9;
height: auto;
vertical-align: middle;
-ms-interpolation-mode: bicubic;
}
a
{
color: inherit;
text-decoration: none;
}

4
scss/all.scss Normal file
View file

@ -0,0 +1,4 @@
@import "_reset";
@import "_grid";
@import "_icons";
@import "_gui";

12
watch.sh Executable file
View file

@ -0,0 +1,12 @@
#!/bin/bash
trap 'jobs -p | xargs kill' EXIT
sass --watch scss:dist/css --sourcemap=none &
if [ $1 != "jeremyisbadatnode" ]; then
babel --presets es2015,react --out-dir dist/js/ --watch js/
else
#yes I am dumb, but not a high prio fix - Jeremy
babel --presets /home/jeremy/local/lib/node_modules/babel-preset-es2015,/home/jeremy/local/lib/node_modules/babel-preset-react --out-dir dist/js/ --watch ~/code/lbry-web-gui/js/
fi