cleanup. added fallback mechanism for IE11 and unsupported browsers.

This commit is contained in:
Henry Jameson 2018-04-01 05:28:20 +03:00
parent aa0564406a
commit acdb5e5c7a
22 changed files with 464 additions and 385 deletions

View file

@ -1,10 +1,11 @@
@import './_variables.scss'; @import './_variables.scss';
#app { #app {
background-size: cover; background-size: cover;
background-attachment: fixed; background-attachment: fixed;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: 0 50px; background-position: 0 50px;
min-height: 100vh; min-height: 100vh;
} }
i { i {
@ -12,7 +13,7 @@ i {
} }
h4 { h4 {
margin: 0; margin: 0;
} }
#content { #content {
@ -26,49 +27,53 @@ h4 {
} }
.text-center { .text-center {
text-align: center; text-align: center;
} }
body { body {
font-family: sans-serif; font-family: sans-serif;
font-size: 14px; font-size: 14px;
margin: 0; margin: 0;
color: var(--fg); color: $fallback--fg;
color: var(--fg, $fallback--fg);
} }
a { a {
text-decoration: none; text-decoration: none;
color: var(--link); color: $fallback--link;
color: var(--link, $fallback--link);
} }
button{ button{
user-select: none; user-select: none;
color: var(--faint); color: $fallback--faint;
background-color: var(--btn); color: var(--faint, $fallback--faint);
border: none; background-color: $fallback--btn;
border-radius: 5px; background-color: var(--btn, $fallback--btn);
cursor: pointer; border: none;
border-top: 1px solid rgba(255, 255, 255, 0.2); border-radius: 5px;
border-bottom: 1px solid rgba(0, 0, 0, 0.2); cursor: pointer;
box-shadow: 0px 0px 2px black; border-top: 1px solid rgba(255, 255, 255, 0.2);
font-size: 14px; border-bottom: 1px solid rgba(0, 0, 0, 0.2);
font-family: sans-serif; box-shadow: 0px 0px 2px black;
font-size: 14px;
font-family: sans-serif;
&:hover {
box-shadow: 0px 0px 4px rgba(255, 255, 255, 0.3);
}
&:disabled {
cursor: not-allowed;
opacity: 0.5;
}
&:hover { &.pressed {
box-shadow: 0px 0px 4px rgba(255, 255, 255, 0.3); color: $fallback--faint;
} color: var(--faint, $fallback--faint);
background-color: $fallback--bg;
&:disabled { background-color: var(--bg, $fallback--bg)
cursor: not-allowed; }
opacity: 0.5;
}
&.pressed {
color: var(--faint);
background-color: var(--bg)
}
} }
@ -78,11 +83,13 @@ input, textarea, select {
border-bottom: 1px solid rgba(255, 255, 255, 0.2); border-bottom: 1px solid rgba(255, 255, 255, 0.2);
border-top: 1px solid rgba(0, 0, 0, 0.2); border-top: 1px solid rgba(0, 0, 0, 0.2);
box-shadow: 0px 0px 2px black inset; box-shadow: 0px 0px 2px black inset;
background-color: var(--lightBg); background-color: $fallback--lightBg;
color: var(--lightFg); background-color: var(--lightBg, $fallback--lightBg);
color: $fallback--lightFg;
color: var(--lightFg, $fallback--lightFg);
font-family: sans-serif; font-family: sans-serif;
font-size: 14px; font-size: 14px;
padding: 5px; padding: 8px 7px 4px;
// TODO: Restyle <select> in a decent way. Needs different markup // TODO: Restyle <select> in a decent way. Needs different markup
// -webkit-appearance:none; // -webkit-appearance:none;
@ -93,7 +100,8 @@ input, textarea, select {
&[type=checkbox] { &[type=checkbox] {
display: none; display: none;
&:checked + label::before { &:checked + label::before {
color: var(--fg); color: $fallback--fg;
color: var(--fg, $fallback--fg);
} }
+ label::before { + label::before {
display: inline-block; display: inline-block;
@ -106,7 +114,8 @@ input, textarea, select {
border-top: 1px solid rgba(0, 0, 0, 0.2); border-top: 1px solid rgba(0, 0, 0, 0.2);
box-shadow: 0px 0px 2px black inset; box-shadow: 0px 0px 2px black inset;
margin-right: .5em; margin-right: .5em;
background-color: var(--btn); background-color: $fallback--btn;
background-color: var(--btn, $fallback--btn);
vertical-align: baseline; vertical-align: baseline;
text-align: center; text-align: center;
line-height: 1.1em; line-height: 1.1em;
@ -126,129 +135,136 @@ input, textarea, select {
.icon-binoculars, .icon-binoculars,
.icon-plus-squared, .icon-plus-squared,
.icon-spin4 { .icon-spin4 {
color: var(--icon) color: $fallback--icon;
color: var(--icon, $fallback--icon)
} }
.container { .container {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
margin: 0; margin: 0;
padding: 0 10px 0 10px; padding: 0 10px 0 10px;
} }
.gaps { .gaps {
margin: -1em 0 0 -1em; margin: -1em 0 0 -1em;
} }
.item { .item {
flex: 1; flex: 1;
line-height: 25px; line-height: 25px;
height: 25px; height: 25px;
overflow: hidden; overflow: hidden;
.nav-icon { .nav-icon {
font-size: 1.1em; font-size: 1.1em;
margin-left: 0.4em; margin-left: 0.4em;
} }
} }
.gaps > .item { .gaps > .item {
padding: 1em 0 0 1em; padding: 1em 0 0 1em;
} }
.auto-size { .auto-size {
flex: 1 flex: 1
} }
nav { nav {
width: 100%; width: 100%;
align-items: center; align-items: center;
position: fixed; position: fixed;
height: 50px; height: 50px;
.inner-nav { .inner-nav {
padding-left: 20px; padding-left: 20px;
padding-right: 20px; padding-right: 20px;
display: flex; display: flex;
align-items: center; align-items: center;
flex-basis: 970px; flex-basis: 970px;
margin: auto; margin: auto;
height: 50px; height: 50px;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center; background-position: center;
background-size: contain; background-size: contain;
} }
} }
main-router { main-router {
flex: 1; flex: 1;
} }
.status.compact { .status.compact {
color: rgba(0, 0, 0, 0.42); color: rgba(0, 0, 0, 0.42);
font-weight: 300; font-weight: 300;
p { p {
margin: 0; margin: 0;
font-size: 0.8em font-size: 0.8em
} }
} }
/* Panel */ /* Panel */
.panel { .panel {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
margin: 0.5em; margin: 0.5em;
background-color: var(--bg); background-color: $fallback--bg;
background-color: var(--bg, $fallback--bg);
border-radius: 10px; border-radius: 10px;
box-shadow: 1px 1px 4px rgba(0,0,0,.6); border-radius: $fallback--panelRadius;
overflow: hidden; border-radius: var(--panelRadius, 10px);
box-shadow: 1px 1px 4px rgba(0,0,0,.6);
overflow: hidden;
} }
.panel-body:empty::before { .panel-body:empty::before {
content: "¯\\_(ツ)_/¯"; // Could use words but it'd require translations content: "¯\\_(ツ)_/¯"; // Could use words but it'd require translations
display: block; display: block;
margin: 1em; margin: 1em;
text-align: center; text-align: center;
} }
.panel-heading { .panel-heading {
border-radius: 10px 10px 0 0; border-radius: 10px 10px 0 0;
background-size: cover; background-size: cover;
padding: 0.6em 1.0em; padding: 0.6em 1.0em;
text-align: left; text-align: left;
font-size: 1.3em; font-size: 1.3em;
line-height: 24px; line-height: 24px;
background-color: var(--btn); background-color: $fallback--btn;
background-color: var(--btn, $fallback--btn);
} }
.panel-footer { .panel-footer {
border-radius: 0 0 10px 10px; border-radius: 0 0 10px 10px;
} }
.panel-body > p { .panel-body > p {
line-height: 18px; line-height: 18px;
padding: 1em; padding: 1em;
margin: 0; margin: 0;
} }
.container > * { .container > * {
min-width: 0px; min-width: 0px;
} }
.fa { .fa {
color: grey; color: grey;
} }
nav { nav {
z-index: 1000; z-index: 1000;
background-color: var(--bg); background-color: $fallback--btn;
color: var(--faint); background-color: var(--btn, $fallback--btn);
box-shadow: 0px 0px 4px rgba(0,0,0,.6); color: $fallback--faint;
color: var(--faint, $fallback--faint);
box-shadow: 0px 0px 4px rgba(0,0,0,.6);
} }
.fade-enter-active, .fade-leave-active { .fade-enter-active, .fade-leave-active {
@ -259,9 +275,9 @@ nav {
} }
.main { .main {
flex-basis: 60%; flex-basis: 60%;
flex-grow: 1; flex-grow: 1;
flex-shrink: 1; flex-shrink: 1;
} }
.sidebar-bounds { .sidebar-bounds {
@ -276,20 +292,20 @@ nav {
} }
.mobile-shown { .mobile-shown {
display: none; display: none;
} }
.panel-switcher { .panel-switcher {
display: none; display: none;
width: 100%; width: 100%;
height: 46px; height: 46px;
button { button {
display: block; display: block;
flex: 1; flex: 1;
max-height: 32px; max-height: 32px;
margin: 0.5em; margin: 0.5em;
padding: 0.5em; padding: 0.5em;
} }
} }
@media all and (min-width: 960px) { @media all and (min-width: 960px) {
@ -324,24 +340,24 @@ nav {
} }
@media all and (max-width: 959px) { @media all and (max-width: 959px) {
.mobile-hidden { .mobile-hidden {
display: none; display: none;
} }
.panel-switcher { .panel-switcher {
display: flex; display: flex;
} }
.container { .container {
padding: 0 0 0 0; padding: 0 0 0 0;
} }
.panel { .panel {
margin: 0.5em 0 0.5em 0; margin: 0.5em 0 0.5em 0;
} }
} }
.item.right { .item.right {
text-align: right; text-align: right;
padding-right: 20px; padding-right: 20px;
} }

View file

@ -1,6 +1,20 @@
$main-color: #f58d2c; $main-color: #f58d2c;
$main-background: white; $main-background: white;
$darkened-background: whitesmoke; $darkened-background: whitesmoke;
$green_: #0fa00f;
$blue_: #0095ff; $fallback--bg: #121a24;
$red_: #ff0000; $fallback--btn: #182230;
$fallback--faint: #999;
$fallback--fg: #b9b9ba;
$fallback--link: #d8a070;
$fallback--icon: #666;
$fallback--lightBg: rgb(21, 30, 42);
$fallback--lightFg: #b9b9ba;
$fallback--border: #222;
$fallback--cRed: #ff0000;
$fallback--cBlue: #0095ff;
$fallback--cGreen: #0fa00f;
$fallback--cOrange: orange;
$fallback--cYellow: yellow;
$fallback--panelRadius: 10px;

View file

@ -30,6 +30,8 @@
<script src="./attachment.js"></script> <script src="./attachment.js"></script>
<style lang="scss"> <style lang="scss">
@import '../../_variables.scss';
.attachments { .attachments {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
@ -45,7 +47,8 @@
flex: 1 0 30%; flex: 1 0 30%;
margin: 0.5em 0.7em 0.6em 0.0em; margin: 0.5em 0.7em 0.6em 0.0em;
align-self: flex-start; align-self: flex-start;
border-color: var(--border); border-color: $fallback--border;
border-color: var(--border, $fallback--border);
border-style: solid; border-style: solid;
border-width: 1px; border-width: 1px;

View file

@ -14,8 +14,8 @@
.icon-cancel,.delete-status { .icon-cancel,.delete-status {
cursor: pointer; cursor: pointer;
&:hover { &:hover {
color: $red_; color: var(--cRed, $fallback--cRed);
color: var(--red); color: $fallback--cRed;
} }
} }
</style> </style>

View file

@ -11,18 +11,22 @@
<script src="./favorite_button.js" ></script> <script src="./favorite_button.js" ></script>
<style lang='scss'> <style lang="scss">
.fav-active { @import '../../_variables.scss';
cursor: pointer;
animation-duration: 0.6s; .fav-active {
&:hover { cursor: pointer;
color: orange; animation-duration: 0.6s;
color: var(--cOrange);
} &:hover {
} color: $fallback--cOrange;
.favorite-button.icon-star { color: var(--cOrange, $fallback--cOrange);
color: orange; }
color: var(--cOrange); }
}
.favorite-button.icon-star {
color: $fallback--cOrange;
color: var(--cOrange, $fallback--cOrange);
}
</style> </style>

View file

@ -31,6 +31,7 @@
<script src="./login_form.js" ></script> <script src="./login_form.js" ></script>
<style lang="scss"> <style lang="scss">
@import '../../_variables.scss';
.login-form { .login-form {
input { input {
@ -47,7 +48,7 @@
border-radius: 5px; border-radius: 5px;
text-align: center; text-align: center;
background-color: rgba(255, 48, 16, 0.65); background-color: rgba(255, 48, 16, 0.65);
background-color: var(--cRed); background-color: $fallback--cRed;
min-height: 28px; min-height: 28px;
line-height: 28px; line-height: 28px;
} }

View file

@ -30,6 +30,8 @@
<script src="./nav_panel.js" ></script> <script src="./nav_panel.js" ></script>
<style lang="scss"> <style lang="scss">
@import '../../_variables.scss';
.nav-panel ul { .nav-panel ul {
list-style: none; list-style: none;
margin: 0; margin: 0;
@ -38,13 +40,17 @@
.nav-panel li { .nav-panel li {
border-bottom: 1px solid; border-bottom: 1px solid;
border-color: var(--border); border-color: $fallback--border;
background-color: var(--bg); border-color: var(--border, $fallback--border);
background-color: $fallback--bg;
background-color: var(--bg, $fallback--bg);
padding: 0; padding: 0;
&:first-child a { &:first-child a {
border-top-right-radius: 10px; border-top-right-radius: 10px;
border-top-left-radius: 10px; border-top-left-radius: 10px;
} }
&:last-child a { &:last-child a {
border-bottom-right-radius: 10px; border-bottom-right-radius: 10px;
border-bottom-left-radius: 10px; border-bottom-left-radius: 10px;
@ -58,16 +64,20 @@
.nav-panel a { .nav-panel a {
display: block; display: block;
padding: 0.8em 0.85em; padding: 0.8em 0.85em;
&:hover { &:hover {
background-color: var(--lightBg); background-color: $fallback--lightBg;
background-color: var(--lightBg, $fallback--lightBg);
} }
&.router-link-active { &.router-link-active {
font-weight: bolder; font-weight: bolder;
background-color: var(--lightBg); background-color: $fallback--lightBg;
background-color: var(--lightBg, $fallback--lightBg);
&:hover { &:hover {
text-decoration: underline; text-decoration: underline;
} }
} }
} }
</style> </style>

View file

@ -24,11 +24,6 @@ const Notifications = {
}, },
unseenCount () { unseenCount () {
return this.unseenNotifications.length return this.unseenNotifications.length
},
hiderStyle () {
return {
background: `linear-gradient(to bottom, rgba(0, 0, 0, 0), ${this.$store.state.config.colors.bg} 80%)`
}
} }
}, },
components: { components: {

View file

@ -5,32 +5,39 @@
padding-bottom: 15em; padding-bottom: 15em;
.panel { .panel {
background: var(--bg) background: $fallback--bg;
background: var(--bg, $fallback--bg)
} }
.panel-body { .panel-body {
border-color: var(--border) border-color: $fallback--border;
border-color: var(--border, $fallback--border)
} }
.panel-heading { .panel-heading {
// force the text to stay centered, while keeping // force the text to stay centered, while keeping
// the button in the right side of the panel heading // the button in the right side of the panel heading
position: relative; position: relative;
background: var(--btn); background: $fallback--btn;
color: var(--faint); background: var(--btn, $fallback--btn);
color: $fallback--faint;
color: var(--faint, $fallback--faint);
.read-button { .read-button {
position: absolute; position: absolute;
right: 0.7em; right: 0.7em;
height: 1.8em; height: 1.8em;
line-height: 100%; line-height: 100%;
background-color: var(--btn); background-color: $fallback--btn;
color: var(--faint); background-color: var(--btn, $fallback--btn);
color: $fallback--faint;
color: var(--faint, $fallback--faint);
} }
} }
.unseen-count { .unseen-count {
display: inline-block; display: inline-block;
background-color: var(--cRed); background-color: $fallback--cRed;
background-color: var(--cRed, $fallback--cRed);
text-shadow: 0px 0px 3px rgba(0, 0, 0, 0.5); text-shadow: 0px 0px 3px rgba(0, 0, 0, 0.5);
min-width: 1.3em; min-width: 1.3em;
border-radius: 1.3em; border-radius: 1.3em;
@ -52,6 +59,10 @@
border-bottom: 1px solid; border-bottom: 1px solid;
border-bottom-color: inherit; border-bottom-color: inherit;
.notification-gradient {
background: linear-gradient(to bottom, rgba(0, 0, 0, 0), $fallback--bg 80%);
background: linear-gradient(to bottom, rgba(0, 0, 0, 0), var(--bg, $fallback--bg) 80%)
}
.text { .text {
min-width: 0px; min-width: 0px;
@ -61,23 +72,24 @@
overflow: hidden; overflow: hidden;
.icon-retweet.lit { .icon-retweet.lit {
color: $green_; color: $fallback--cGreen;
color: var(--cGreen); color: var(--cGreen, $fallback--cGreen);
} }
.icon-user-plus.lit { .icon-user-plus.lit {
color: $blue_; color: $fallback--cBlue;
color: var(--cBlue); color: var(--cBlue, $fallback--cBlue);
} }
.icon-reply.lit { .icon-reply.lit {
color: $blue_; color: $fallback--cBlue;
color: var(--cBlue); color: var(--cBlue, $fallback--cBlue);
} }
.icon-star.lit { .icon-star.lit {
color: orange; color: orange;
color: var(--cOrange); color: $fallback--cOrange;
color: var(--cOrange, $fallback--cOrange);
} }
.status-content { .status-content {
@ -151,7 +163,8 @@
} }
.unseen { .unseen {
border-left: 4px solid var(--cRed); border-left: 4px solid $fallback--cRed;
border-left: 4px solid var(--cRed, $fallback--cRed);
padding-left: 6px; padding-left: 6px;
} }
} }

View file

@ -20,7 +20,7 @@
<i class="fa icon-star lit"></i> <i class="fa icon-star lit"></i>
<small><router-link :to="{ name: 'conversation', params: { id: notification.status.id } }"><timeago :since="notification.action.created_at" :auto-update="240"></timeago></router-link></small> <small><router-link :to="{ name: 'conversation', params: { id: notification.status.id } }"><timeago :since="notification.action.created_at" :auto-update="240"></timeago></router-link></small>
</h1> </h1>
<div class="notification-gradient" :style="hiderStyle"></div> <div class="notification-gradient"></div>
<div class="notification-content" v-html="notification.status.statusnet_html"></div> <div class="notification-content" v-html="notification.status.statusnet_html"></div>
</div> </div>
<div v-if="notification.type === 'repeat'"> <div v-if="notification.type === 'repeat'">
@ -29,7 +29,7 @@
<i class="fa icon-retweet lit"></i> <i class="fa icon-retweet lit"></i>
<small><router-link :to="{ name: 'conversation', params: { id: notification.status.id } }"><timeago :since="notification.action.created_at" :auto-update="240"></timeago></router-link></small> <small><router-link :to="{ name: 'conversation', params: { id: notification.status.id } }"><timeago :since="notification.action.created_at" :auto-update="240"></timeago></router-link></small>
</h1> </h1>
<div class="notification-gradient" :style="hiderStyle"></div> <div class="notification-gradient"></div>
<div class="notification-content" v-html="notification.status.statusnet_html"></div> <div class="notification-content" v-html="notification.status.statusnet_html"></div>
</div> </div>
<div v-if="notification.type === 'mention'"> <div v-if="notification.type === 'mention'">

View file

@ -50,6 +50,7 @@
<script src="./post_status_form.js"></script> <script src="./post_status_form.js"></script>
<style lang="scss"> <style lang="scss">
@import '../../_variables.scss';
.tribute-container { .tribute-container {
ul { ul {
@ -83,11 +84,13 @@
display: flex; display: flex;
} }
} }
.error { .error {
border-radius: 5px; border-radius: 5px;
text-align: center; text-align: center;
background-color: rgba(255, 48, 16, 0.65); background-color: rgba(255, 48, 16, 0.65);
background-color: var(--cRed); background-color: $fallback--cRed;
background-color: var(--cRed, $fallback--cRed);
padding: 0.25em; padding: 0.25em;
margin: 0.35em; margin: 0.35em;
display: flex; display: flex;
@ -98,7 +101,8 @@
.attachment { .attachment {
position: relative; position: relative;
border: var(--border); border: $fallback--border;
border: var(--border, $fallback--border);
margin: 0.5em 0.8em 0.2em 0; margin: 0.5em 0.8em 0.2em 0;
} }
@ -139,11 +143,11 @@
} }
form textarea { form textarea {
border-radius: 5px;
line-height:16px; line-height:16px;
padding: 5px;
resize: none; resize: none;
overflow: hidden; overflow: hidden;
transition: min-height 200ms;
min-height: 1px;
} }
form textarea:focus { form textarea:focus {
@ -170,8 +174,10 @@
z-index: 1; z-index: 1;
box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.5); box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.5);
min-width: 75%; min-width: 75%;
background: var(--btn); background: $fallback--btn;
color: var(--lightFg); background: var(--btn, $fallback--btn);
color: $fallback--lightFg;
color: var(--lightFg, $fallback--lightFg);
} }
.autocomplete { .autocomplete {
@ -179,19 +185,23 @@
padding: 0.2em 0.4em 0.2em 0.4em; padding: 0.2em 0.4em 0.2em 0.4em;
border-bottom: 1px solid rgba(0, 0, 0, 0.4); border-bottom: 1px solid rgba(0, 0, 0, 0.4);
display: flex; display: flex;
img { img {
width: 24px; width: 24px;
height: 24px; height: 24px;
border-radius: 2px; border-radius: 2px;
object-fit: contain; object-fit: contain;
} }
span { span {
line-height: 24px; line-height: 24px;
margin: 0 0.1em 0 0.2em; margin: 0 0.1em 0 0.2em;
} }
small { small {
margin-left: .5em; margin-left: .5em;
color: var(--faint); color: $fallback--faint;
color: var(--faint, $fallback--faint);
} }
} }
} }

View file

@ -55,6 +55,7 @@
<script src="./registration.js"></script> <script src="./registration.js"></script>
<style lang="scss"> <style lang="scss">
@import '../../_variables.scss';
.registration-form { .registration-form {
display: flex; display: flex;
@ -87,18 +88,13 @@
} }
form textarea { form textarea {
border: solid;
border-width: 1px;
border-color: silver;
border-radius: 5px; border-radius: 5px;
line-height:16px; line-height:16px;
padding: 5px;
resize: vertical; resize: vertical;
} }
input { input {
border-radius: 5px; border-radius: 5px;
padding: 0.1em 0.2em 0.2em 0.2em;
} }
.captcha { .captcha {
@ -111,21 +107,21 @@
//width: 10em; //width: 10em;
margin-top: 0.6em; margin-top: 0.6em;
height: 28px; height: 28px;
} }
.error { .error {
border-radius: 5px; border-radius: 5px;
text-align: center; text-align: center;
margin: 0.5em 0.6em 0; margin: 0.5em 0.6em 0;
background-color: rgba(255, 48, 16, 0.65); background-color: $fallback--cRed;
background-color: var(--cRed); background-color: var(--cRed, $fallback--cRed);
min-height: 28px; min-height: 28px;
line-height: 28px; line-height: 28px;
} }
} }
@media all and (max-width: 959px) { @media all and (max-width: 959px) {
.registration-form .container { .registration-form .container {
flex-direction: column-reverse; flex-direction: column-reverse;
} }
} }

View file

@ -11,18 +11,18 @@
<script src="./retweet_button.js" ></script> <script src="./retweet_button.js" ></script>
<style lang='scss'> <style lang="scss">
@import '../../_variables.scss'; @import '../../_variables.scss';
.rt-active { .rt-active {
cursor: pointer; cursor: pointer;
animation-duration: 0.6s; animation-duration: 0.6s;
&:hover { &:hover {
color: $green_; color: $fallback--cGreen;
color: var(--cGreen); color: var(--cGreen, $fallback--cGreen);
} }
} }
.icon-retweet.retweeted { .icon-retweet.retweeted {
color: $green_; color: $fallback--cGreen;
color: var(--cGreen); color: var(--cGreen, $fallback--cGreen);
} }
</style> </style>

View file

@ -56,6 +56,7 @@
<style lang="scss"> <style lang="scss">
.setting-item { .setting-item {
margin: 1em 1em 1.4em; margin: 1em 1em 1.4em;
textarea { textarea {
width: 100%; width: 100%;
height: 100px; height: 100px;

View file

@ -139,8 +139,10 @@ status-text-container {
max-width: 34em; max-width: 34em;
padding: 0.5em; padding: 0.5em;
display: flex; display: flex;
background-color: var(--bg); background-color: $fallback--bg;
border-color: var(--border); background-color: var(--bg, $fallback--bg);
border-color: $fallback--border;
border-color: var(--border, $fallback--border);
border-style: solid; border-style: solid;
border-width: 1px; border-width: 1px;
border-radius: 4px; border-radius: 4px;
@ -181,15 +183,19 @@ status-text-container {
word-break: break-word; word-break: break-word;
border-left-width: 0px; border-left-width: 0px;
line-height: 18px; line-height: 18px;
background-color: var(--bg); background-color: $fallback--bg;
border-color: var(--border); background-color: var(--bg, $fallback--bg);
border-color: $fallback--border;
border-color: var(--border, $fallback--border);
&_focused { &_focused {
background-color: var(--lightBg); background-color: $fallback--lightBg;
background-color: var(--lightBg, $fallback--lightBg);
} }
.usercard { .usercard {
border-color: var(--border); border-color: $fallback--border;
border-color: var(--border, $fallback--border);
} }
.timeline & { .timeline & {
@ -211,7 +217,6 @@ status-text-container {
.user-content { .user-content {
min-height: 52px; min-height: 52px;
padding-top: 1px; padding-top: 1px;
} }
@ -224,14 +229,17 @@ status-text-container {
small { small {
font-weight: lighter; font-weight: lighter;
} }
h4 { h4 {
margin-right: 0.4em; margin-right: 0.4em;
} }
.name-and-links { .name-and-links {
flex: 1 0; flex: 1 0;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
} }
.replies { .replies {
flex-basis: 100%; flex-basis: 100%;
} }
@ -310,6 +318,7 @@ status-text-container {
from { from {
opacity: 0; opacity: 0;
} }
to { to {
opacity: 1; opacity: 1;
} }
@ -335,14 +344,14 @@ status-text-container {
} }
.icon-reply:hover { .icon-reply:hover {
color: $blue_; color: $fallback--cBlue;
color: var(--cBlue); color: var(--cBlue, $fallback--cBlue);
} }
.icon-reply.icon-reply-active { .icon-reply.icon-reply-active {
color: $blue_; color: $fallback--cBlue;
color: var(--cBlue); color: var(--cBlue, $fallback--cBlue);
} }
.status .avatar { .status .avatar {
width: 48px; width: 48px;
@ -359,13 +368,13 @@ status-text-container {
display: none; display: none;
} }
&.retweeted { &.retweeted {
width: 40px; width: 40px;
height: 40px; height: 40px;
margin-right: 8px; margin-right: 8px;
margin-bottom: 8px; margin-bottom: 8px;
} }
} }
.status:hover .animated.avatar { .status:hover .animated.avatar {
canvas { canvas {
@ -376,79 +385,81 @@ status-text-container {
} }
} }
.status .avatar-retweeter { .status img.avatar-retweeter {
width: 24px; width: 24px;
height: 24px; height: 24px;
position: absolute; position: absolute;
margin-left: 24px; margin-left: 24px;
margin-top: 24px; margin-top: 24px;
} }
.status.compact .avatar { .status.compact .avatar {
width: 32px; width: 32px;
} }
.status { .status {
padding: 0.4em 0.7em 0.45em 0.7em; padding: 0.4em 0.7em 0.45em 0.7em;
border-left: 4px var(--cRed); border-left: 4px $fallback--cRed;
border-left-style: inherit; border-left: 4px var(--cRed, $fallback--cRed);
} border-left-style: inherit;
}
.status-conversation:last-child { .status-conversation:last-child {
border-bottom: none; border-bottom: none;
} }
.timeline .panel.timeline { .timeline .panel.timeline {
border-radius: 10px; border-radius: 10px;
overflow: hidden; overflow: hidden;
} }
.muted { .muted {
padding: 0.1em 0.4em 0.1em 0.8em; padding: 0.1em 0.4em 0.1em 0.8em;
button { button {
margin-left: auto; margin-left: auto;
} }
.muteWords { .muteWords {
margin-left: 10px; margin-left: 10px;
} }
} }
a.unmute { a.unmute {
display: block; display: block;
margin-left: auto; margin-left: auto;
} }
.reply-left { .reply-left {
flex: 0; flex: 0;
min-width: 48px; min-width: 48px;
} }
.reply-body { .reply-body {
flex: 1; flex: 1;
} }
@media all and (max-width: 960px) { @media all and (max-width: 960px) {
.status-el { .status-el {
.name-and-links { .name-and-links {
margin-left: -0.25em; margin-left: -0.25em;
} }
} }
.status {
max-width: 100%;
}
.status .avatar { .status {
width: 40px; max-width: 100%;
height: 40px; }
&.retweeted { .status .avatar {
width: 34px; width: 40px;
height: 34px; height: 40px;
margin-right: 8px;
margin-bottom: 8px; &.retweeted {
} width: 34px;
} height: 34px;
margin-right: 8px;
margin-bottom: 8px;
}
}
.status .avatar-retweeter { .status .avatar-retweeter {
width: 22px; width: 22px;

View file

@ -47,6 +47,7 @@
<script src="./style_switcher.js"></script> <script src="./style_switcher.js"></script>
<style lang="scss"> <style lang="scss">
@import '../../_variables.scss';
.style-switcher { .style-switcher {
margin-right: 1em; margin-right: 1em;
} }
@ -65,14 +66,20 @@
margin: 5px 6px 5px 0; margin: 5px 6px 5px 0;
label { label {
color: var(--faint); color: var(--faint, $fallback--faint);
} }
} }
.theme-color-cl {
border: 0;
box-shadow: none;
background: transparent;
}
.theme-color-cl, .theme-color-cl,
.theme-color-in { .theme-color-in {
margin-left: 4px; margin-left: 4px;
border-radius: 2px; border-radius: 2px;
border: 0;
} }
.theme-color-in { .theme-color-in {

View file

@ -52,54 +52,63 @@
<script src="./timeline.js"></script> <script src="./timeline.js"></script>
<style lang="scss"> <style lang="scss">
@import '../../_variables.scss';
.timeline { .timeline {
.timeline-heading { .timeline-heading {
position: relative; position: relative;
display: flex; display: flex;
} }
.title { .title {
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
max-width: 70%; max-width: 70%;
} }
.loadmore-button { .loadmore-button {
position: absolute; position: absolute;
right: 0.6em; right: 0.6em;
font-size: 14px; font-size: 14px;
min-width: 6em; min-width: 6em;
height: 1.8em; height: 1.8em;
line-height: 100%; line-height: 100%;
} }
.loadmore-text { .loadmore-text {
position: absolute; position: absolute;
right: 0.6em; right: 0.6em;
font-size: 14px; font-size: 14px;
min-width: 6em; min-width: 6em;
border-radius: 5px; border-radius: 5px;
background-color: transparent; background-color: transparent;
color: var(--faint); color: $fallback--faint;
font-family: sans-serif; color: var(--faint, $fallback--faint);
text-align: center; font-family: sans-serif;
padding: 0 0.5em 0 0.5em; text-align: center;
opacity: 0.8; padding: 0 0.5em 0 0.5em;
opacity: 0.8;
} }
.error {
color: var(--lightFg);
background-color: var(--cRed);
}
}
.new-status-notification { .error {
color: $fallback--lightFg;
color: var(--lightFg, $fallback--lightFg);
background-color: $fallback--cRed;
background-color: var(--cRed, $fallback--cRed);
}
}
.new-status-notification {
position:relative; position:relative;
margin-top: -1px; margin-top: -1px;
font-size: 1.1em; font-size: 1.1em;
border-width: 1px 0 0 0; border-width: 1px 0 0 0;
border-style: solid; border-style: solid;
border-radius: 0 0 10px 10px; border-radius: 0 0 10px 10px;
border-color: var(--border); border-color: $fallback--border;
border-color: var(--border, $fallback--border);
padding: 10px; padding: 10px;
z-index: 1; z-index: 1;
} }

View file

@ -21,6 +21,8 @@
<script src="./user_card.js"></script> <script src="./user_card.js"></script>
<style lang="scss"> <style lang="scss">
@import '../../_variables.scss';
.name-and-screen-name { .name-and-screen-name {
margin-left: 0.7em; margin-left: 0.7em;
margin-top:0.0em; margin-top:0.0em;
@ -34,10 +36,6 @@
float: right; float: right;
} }
.follows {
}
.card { .card {
display: flex; display: flex;
flex: 1 0; flex: 1 0;
@ -47,7 +45,8 @@
padding-left: 1em; padding-left: 1em;
border-bottom: 1px solid; border-bottom: 1px solid;
margin: 0; margin: 0;
border-bottom-color: var(--border); border-bottom-color: $fallback--border;
border-bottom-color: var(--border, $fallback--border);
.avatar { .avatar {
margin-top: 0.2em; margin-top: 0.2em;
@ -69,8 +68,9 @@
.panel-heading { .panel-heading {
background: transparent; background: transparent;
} }
p { p {
margin-bottom: 0; margin-bottom: 0;
} }
} }
</style> </style>

View file

@ -15,11 +15,6 @@ export default {
} }
} }
}, },
bodyStyle () {
return {
background: `linear-gradient(to bottom, rgba(0, 0, 0, 0), ${this.$store.state.config.colors.bg} 80%)`
}
},
isOtherUser () { isOtherUser () {
return this.user.id !== this.$store.state.users.currentUser.id return this.user.id !== this.$store.state.users.currentUser.id
}, },

View file

@ -70,7 +70,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="panel-body profile-panel-body" :style="bodyStyle"> <div class="panel-body profile-panel-body">
<div class="user-counts"> <div class="user-counts">
<div class="user-count"> <div class="user-count">
<a href="#" v-on:click.prevent="setProfileView('statuses')" v-if="switcher"><h5>{{ $t('user_card.statuses') }}</h5></a> <a href="#" v-on:click.prevent="setProfileView('statuses')" v-if="switcher"><h5>{{ $t('user_card.statuses') }}</h5></a>
@ -99,19 +99,21 @@
@import '../../_variables.scss'; @import '../../_variables.scss';
.profile-panel-background { .profile-panel-background {
background-size: cover; background-size: cover;
border-radius: 10px; border-radius: 10px;
.panel-heading { .panel-heading {
padding: 0.6em 0em; padding: 0.6em 0em;
text-align: center; text-align: center;
} }
} }
.profile-panel-body { .profile-panel-body {
top: -0em; top: -0em;
padding-top: 4em; padding-top: 4em;
word-wrap: break-word; word-wrap: break-word;
background: linear-gradient(to bottom, rgba(0, 0, 0, 0), $fallback--bg 80%);
background: linear-gradient(to bottom, rgba(0, 0, 0, 0), var(--bg, $fallback--bg) 80%)
} }
.user-info { .user-info {

View file

@ -16,25 +16,25 @@
<script src="./user_finder.js"></script> <script src="./user_finder.js"></script>
<style lang="scss"> <style lang="scss">
.user-finder-container { @import '../../_variables.scss';
height: 21px;
max-width: 100%;
}
.user-finder-icon { .user-finder-container {
} height: 21px;
max-width: 100%;
}
.user-finder-input { .user-finder-input {
border-radius: 5px; border-radius: 5px;
max-width: 80%; max-width: 80%;
padding: 0.1em 0.2em 0.2em 0.2em; padding: 0.1em 0.2em 0.2em 0.2em;
} }
.finder-error { .finder-error {
background-color: rgba(255, 48, 16, 0.65); background-color: rgba(255, 48, 16, 0.65);
margin: 0.35em; margin: 0.35em;
border-radius: 5px; border-radius: 5px;
padding: 0.25em; padding: 0.25em;
color: var(--faint); color: $fallback--faint;
} color: var(--faint, $fallback--faint);
}
</style> </style>

View file

@ -47,8 +47,6 @@ const setStyle = (href, commit) => {
head.appendChild(styleEl) head.appendChild(styleEl)
// const styleSheet = styleEl.sheet // const styleSheet = styleEl.sheet
// styleSheet.insertRule(`a { color: ${colors['base08']}`, 'index-max')
// styleSheet.insertRule(`body { color: ${colors['base05']}`, 'index-max')
body.style.display = 'initial' body.style.display = 'initial'
} }
@ -82,20 +80,14 @@ const setColors = (col, commit) => {
colors['base07'] = rgb2hex(col.text.r - mod * 2, col.text.g - mod * 2, col.text.b - mod * 2) colors['base07'] = rgb2hex(col.text.r - mod * 2, col.text.g - mod * 2, col.text.b - mod * 2)
colors.link = rgb2hex(col.link.r, col.link.g, col.link.b) // links colors.link = rgb2hex(col.link.r, col.link.g, col.link.b) // links
colors.icon = rgb2hex((col.bg.r + col.text.r) / 2, (col.bg.g + col.text.g) / 2, (col.bg.b + col.text.b) / 2) // icons colors.icon = rgb2hex((col.bg.r + col.text.r) / 2, (col.bg.g + col.text.g) / 2, (col.bg.b + col.text.b) / 2) // icons
colors.cBlue = 'blue' colors.cBlue = '#0095ff'
colors.cRed = 'red' colors.cRed = 'red'
colors.cGreen = 'green' colors.cGreen = '#0fa00f'
colors.cYellow = 'yellow' colors.cYellow = 'yellow'
colors.cOrange = 'orange' colors.cOrange = 'orange'
const colorVars = Object.entries(colors).map(([k, v]) => { styleSheet.toString()
return `--${k}: ${v}` styleSheet.insertRule(`body { ${Object.entries(colors).map(([k, v]) => `--${k}: ${v}`).join(';')} }`, 'index-max')
})
console.log(colorVars)
styleSheet.insertRule(`body { ${colorVars.join(';')} }`, 'index-max')
// styleSheet.insertRule(`.base05-border { border-color: ${colors['base05']}`, 'index-max')
// styleSheet.insertRule(`.base03-border { border-color: ${colors['base03']}`, 'index-max')
body.style.display = 'initial' body.style.display = 'initial'
commit('setOption', { name: 'colors', value: colors }) commit('setOption', { name: 'colors', value: colors })