Rearrange app directory structure

This commit is contained in:
John Furrow
2015-11-07 23:13:21 -08:00
parent 072c000236
commit eb1ea0806d
91 changed files with 488 additions and 2975 deletions
+145
View File
@@ -0,0 +1,145 @@
.actions {
list-style: none;
}
.action {
box-shadow:
1px 0 transparent,
-1px 0 transparent;
cursor: pointer;
display: inline-block;
height: 60px;
position: relative;
width: 60px;
text-align: center;
transition: background 0.25s, box-shadow 0.25s;
&:hover {
background: $action--background--hover;
box-shadow:
1px 0 $action--border--hover,
-1px 0 $action--border--hover;
.icon {
fill: $action--foreground--hover;
}
}
&__label {
display: block;
position: absolute;
top: 100%;
visibility: hidden;
}
.icon {
fill: $action--foreground;
height: 25px;
left: 50%;
position: absolute;
top: 50%;
transition: fill 0.25s;
transform: translateX(-50%) translateY(-50%);
width: 30px;
}
}
.action-bar {
background: $action-bar--background;
color: $action-bar--foreground;
display: flex;
&__item {
flex: 3;
&:first-child {
text-align: left;
}
&:last-child {
text-align: right;
}
}
&__group {
display: inline-block;
padding: 0 15px;
&--has-divider {
position: relative;
&:before {
background: $action-bar--group--border;
content: '';
position: absolute;
height: 80%;
left: 0;
top: 10%;
width: 1px;
}
}
}
}
.action-bar {
&__item {
&--sort-torrents {
box-shadow: -1px 0 $action-bar--group--border;
max-width: 225px;
.dropdown {
margin: 5px 0 0 15px;
&__label {
color: $dropdown--label;
cursor: pointer;
display: block;
font-size: 0.65em;
font-weight: 500;
letter-spacing: 0.1em;
line-height: 0.9em;
text-transform: uppercase;
}
&__value {
color: $dropdown--value;
&:after {
border-top: 5px solid $dropdown--value;
border-left: 4px solid transparent;
border-right: 4px solid transparent;
content: '';
display: inline-block;
margin-left: 10px;
vertical-align: middle;
}
}
&__content {
min-width: 250px;
}
}
}
}
}
.action-bar {
&__item {
&--torrent-operations {
.dropdown {
display: inline-block;
height: 60px;
&__content {
min-width: 430px;
right: 4px;
}
}
}
}
}
@@ -0,0 +1,205 @@
.client-stat {
display: flex;
padding: 30px 20px 20px 20px;
&__icon,
&__data {
position: relative;
vertical-align: top;
z-index: 1;
}
&__icon {
flex: 0 0 23px;
.icon {
display: inline-block;
height: 25px;
margin: 6px 0 0 -5px;
width: auto;
}
}
&__data {
flex: 1;
&--primary,
&--secondary {
display: block;
font-weight: 100;
line-height: 1.2;
}
&--primary {
font-size: 1.9em;
}
&--secondary {
font-size: 0.9em;
font-style: italic;
font-weight: 400;
}
}
}
.client-stat {
&--limits {
background: none;
border: none;
color: $client-stats--limits--foreground;
display: block;
margin: 15px 0 0 0;
outline: none;
padding: 2px 0 2px 25px;
font-size: 0.85em;
text-align: left;
transition: color 0.25s;
vertical-align: middle;
width: 100%;
.icon {
display: inline-block;
fill: $client-stats--limits--foreground;
margin: -2px 5px 0 0;
transition: fill 0.25s;
vertical-align: middle;
width: 14.5px;
.limits {
&__bars {
&--top {
opacity: 0.4;
}
&--bottom {
opacity: 0.6;
}
}
}
}
&:hover {
color: $client-stats--limits--icon--hover;
.icon {
fill: $client-stats--limits--icon--hover;
}
}
}
}
.client-stat {
position: relative;
.graph {
height: 100%;
left: 0;
position: absolute;
top: 0;
width: 100%;
z-index: 0;
svg {
height: 100%;
width: 100%;
}
&--line {
fill: none;
stroke-width: 2px;
}
}
&--download {
.icon {
fill: $client-stats--download--secondary--foreground;
}
.client-stat {
&__data {
&--primary {
color: $client-stats--download--primary--foreground;
}
&--secondary {
color: $client-stats--download--secondary--foreground;
}
}
}
.graph {
.graph--download--gradient--top {
stop-color: $client-stats--download--graph--fill--top;
}
.graph--download--gradient--bottom {
stop-color: $client-stats--download--graph--fill--bottom;
}
&--area {
fill: url('#graph--download--gradient')
}
&--line {
stroke: $client-stats--download--graph--stroke;
}
}
}
&--upload {
.icon {
fill: $client-stats--upload--secondary--foreground;
}
.client-stat {
&__data {
&--primary {
color: $client-stats--upload--primary--foreground;
}
&--secondary {
color: $client-stats--upload--secondary--foreground;
}
}
}
.graph {
.graph--upload--gradient--top {
stop-color: $client-stats--upload--graph--fill--top;
}
.graph--upload--gradient--bottom {
stop-color: $client-stats--upload--graph--fill--bottom;
}
&--area {
fill: url('#graph--upload--gradient')
}
&--line {
stroke: $client-stats--upload--graph--stroke;
}
}
}
}
+3
View File
@@ -0,0 +1,3 @@
.content {
background: $main-content--background;
}
+93
View File
@@ -0,0 +1,93 @@
.dropdown {
display: inline-block;
position: relative;
z-index: 2;
&__button {
cursor: pointer;
display: block;
padding: 12px 15px 7px 15px;
text-align: left;
width: auto;
word-wrap: none;
}
&__content {
background: $dropdown--background;
border-radius: 3px;
box-shadow:
0 0 0 1px $dropdown--container--border,
0 0 35px $dropdown--container--shadow;
color: $dropdown--foreground;
left: 0;
position: absolute;
text-align: left;
top: 0;
z-index: 2;
}
&__header {
position: relative;
&:after {
background: $dropdown--header--border;
bottom: 0;
content: '';
display: block;
height: 1px;
left: 5%;
position: absolute;
width: 90%;
}
}
&__items {
padding: 10px 0;
}
&__item {
cursor: pointer;
display: block;
font-size: 0.9em;
padding: 5px 15px;
transition: background 0.25s, color 0.25s;
&:hover {
background: $dropdown--item--background--hover;
color: $dropdown--item--foreground--hover;
}
&.is-selected {
color: $dropdown--item--foreground--active;
}
}
&--align-right & {
left: auto;
right: 0;
}
}
.dropdown {
&__content {
&-enter {
animation: fade-in 0.25s both;
}
&-leave {
animation: fade-out 0.25s both;
}
}
}
.dropdown {
&__content {
&__container {
padding: 25px 30px;
}
}
}
+32
View File
@@ -0,0 +1,32 @@
.modal {
animation: fade-in 0.25s forwards;
background: $modal--overlay;
height: 100%;
position: fixed;
width: 100%;
z-index: 100;
&__window {
background: $modal--background;
left: 50%;
max-width: 100%;
padding: 30px;
position: absolute;
top: 50%;
transform: translate(-50%, -50%);
width: 500px;
}
}
.modal {
&__header {
margin-bottom: 20px;
h1 {
color: $modal--header--foreground;
font-size: 1.35em;
font-weight: 400;
}
}
}
@@ -0,0 +1,57 @@
.progress-bar {
height: 3px;
position: relative;
transition: opacity 0.25s;
z-index: 1;
.is-selected.is-stopped & {
opacity: 0.5;
}
&:after {
background: $progress-bar--background;
content: '';
height: 1px;
left: 0;
position: absolute;
z-index: 0;
top: 1px;
transition: background 0.25s;
width: 100%;
.is-selected & {
background: $progress-bar--background--selected;
}
.is-selected.is-stopped & {
background: $progress-bar--background--selected--stopped;
}
}
&__fill {
background: $progress-bar--fill;
bottom: 0;
height: 100%;
left: 0;
position: absolute;
top: 0;
transition: background 0.25s, width 0.25s;
z-index: 1;
.is-completed & {
background: $progress-bar--fill--completed;
}
.is-seeding & {
background: $progress-bar--fill--completed;
}
.is-stopped & {
background: $progress-bar--fill--stopped;
}
.is-selected & {
background: $progress-bar--fill--selected;
}
}
}
+67
View File
@@ -0,0 +1,67 @@
.sidebar {
box-shadow: inset -1px 0 $sidebar--border;
color: $sidebar--foreground;
&__item {
&--search {
position: relative;
.icon {
fill: $search-torrents--icon--foreground;
height: 22px;
left: 17px;
opacity: 0.5;
position: absolute;
top: 50%;
transition: fill 0.25s, opacity 0.25s;
transform: translateY(-50%);
width: 22px;
}
.textbox {
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
border: 1px solid $search-torrents--border;
border-left: none;
border-right: none;
border-radius: 0;
background: $search-torrents--background;
box-shadow: none;
color: $search-torrents--foreground;
display: block;
font-size: 1em;
outline: none;
padding: 12px 0 12px 45px;
transition: background 0.25s, border 0.25s, color 0.25s;
width: 100%;
&::placeholder {
color: $search-torrents--placeholder;
font-style: italic;
transition: color 0.25s;
}
}
&.is-in-use {
.icon {
fill: $search-torrents--icon--foreground--active;
opacity: 1;
}
.textbox {
background: $search-torrents--background--active;
border-bottom: 1px solid $search-torrents--border--active;
border-top: 1px solid $search-torrents--border--active;
color: $search-torrents--foreground--active;
&::placeholder {
color: $search-torrents--placeholder--active;
}
}
}
}
}
}
@@ -0,0 +1,58 @@
.status-filter {
font-size: 0.85em;
padding: 30px 0;
&__item {
color: $status-filter--foreground;
cursor: pointer;
padding: 3px 20px;
transition: color 0.25s;
&:hover {
color: $status-filter--foreground--hover;
.icon {
fill: $status-filter--foreground--hover;
}
}
&.is-active {
color: $status-filter--foreground--active;
font-weight: 700;
.icon {
fill: $status-filter--foreground--active;
}
}
.icon {
display: inline-block;
fill: $status-filter--foreground;
height: 14px;
margin-right: 7px;
transition: fill 0.25s;
vertical-align: middle;
width: auto;
}
}
}
.status-filter {
&__item {
&--heading {
cursor: default;
font-size: 0.8em;
font-weight: 500;
letter-spacing: 0.1em;
text-transform: uppercase;
&,
&:hover {
color: $status-filter--foreground--header;
}
}
}
}
+155
View File
@@ -0,0 +1,155 @@
.torrent {
&__list {
background: $torrent-list--background;
border-radius: 4px 4px 0 0;
box-shadow: 0 0 0 1px $torrent-list--border;
list-style: none;
opacity: 1;
overflow: auto;
padding: 10px 0;
position: relative;
transition: opacity 1s;
user-select: none;
&--empty {
opacity: 0;
}
}
}
.torrent {
cursor: default;
padding: 10px 25px;
transition: background 0.25s;
&:hover {
background: $torrent--background--hover;
}
&.is-selected {
background: $torrent--background--selected;
}
}
.torrent {
&__details {
align-items: center;
display: flex;
flex: 1;
flex-flow: row wrap;
list-style: none;
&--primary,
&--secondary,
&--tertiary {
transition: color 0.25s;
}
&--primary {
color: $torrent--primary--foreground;
flex: 4;
line-height: 1.3;
.is-stopped & {
color: $torrent--primary--foreground--stopped;
}
.is-selected & {
color: $torrent--primary--foreground--selected;
}
.is-selected.is-stopped & {
color: $torrent--primary--foreground--selected--stopped;
}
}
&--secondary {
align-items: flex-end;
color: $torrent--secondary--foreground;
flex: 1;
font-size: 0.75em;
min-width: 200px;
li {
flex: 1 1 auto;
min-width: 15%;
&.torrent__details--ratio {
max-width: 30px;
}
}
.is-stopped & {
color: $torrent--secondary--foreground--stopped;
}
.is-selected & {
color: $torrent--secondary--foreground--selected;
}
.is-selected.is-stopped & {
color: $torrent--secondary--foreground--selected--stopped;
}
}
&--tertiary {
color: $torrent--tertiary--foreground;
display: block;
font-size: 0.75em;
margin: 0 0 3px 0;
li {
display: inline-block;
margin-right: 1em;
&:last-child {
margin-right: 0;
}
}
.is-stopped & {
color: $torrent--tertiary--foreground--stopped;
}
.is-selected & {
color: $torrent--tertiary--foreground--selected;
}
.is-selected.is-stopped & {
color: $torrent--tertiary--foreground--selected--stopped;
}
}
&__label {
margin-right: 0.5em;
opacity: 0.5;
}
}
}
.torrent {
&__details {
&--eta {
opacity: 0;
transition: opacity 1s, visibility 1s;
visibility: hidden;
.torrent__details--segment {
margin-right: 0.25em;
&:last-child {
margin-right: 0;
}
}
.is-actively-downloading & {
opacity: 1;
visibility: visible;
}
}
}
}