Rounded buttons (again); Making light theme actually nice

This commit is contained in:
James Barnsley
2019-12-09 07:17:45 +13:00
parent 4165490e0a
commit 9393488a3f
19 changed files with 317 additions and 351 deletions

View File

@ -2724,7 +2724,7 @@ body {
position: relative; }
.app-inner.light-theme {
color: #121212;
background: #f8f7f6; }
background: #f4f2f0; }
.app-inner.dark-theme {
color: #cecac4;
background: #181818; }
@ -2793,9 +2793,9 @@ main {
color: inherit;
text-decoration: none;
cursor: pointer; }
main a:not(.control):not(.action) {
main a:not(.control):not(.action):not(.button) {
border-bottom: 1px solid transparent; }
main a:not(.control):not(.action):hover {
main a:not(.control):not(.action):not(.button):hover {
border-color: #a3a19f; }
main p {
font-size: 18px;
@ -3390,48 +3390,24 @@ select {
user-select: none;
display: inline-flex;
font-size: 14px;
color: #000000;
padding: 9px 30px 7px;
color: inherit;
background: transparent;
padding: 9px 40px 7px;
margin: 5px 20px 5px 0;
box-sizing: border-box;
border-radius: 3px;
border-radius: 100px;
vertical-align: middle;
position: relative;
border: 0 !important;
cursor: pointer;
letter-spacing: -0.01rem;
text-align: center;
text-decoration: none; }
text-decoration: none;
border: 2px solid transparent; }
.dark-theme .button {
color: #FFFFFF; }
.button .icon {
padding-right: 8px;
margin: 0; }
.button:not(.button--no-hover) {
position: relative;
border-radius: 3px; }
.button:not(.button--no-hover):before {
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
border-radius: 3px;
content: "";
display: block;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
opacity: 0.05;
z-index: 9;
pointer-events: none;
background: -webkit-linear-gradient(to bottom right, rgba(255, 255, 255, 0.75), black);
background: -moz-linear-gradient(to bottom right, rgba(255, 255, 255, 0.75), black);
background: -o-linear-gradient(to bottom right, rgba(255, 255, 255, 0.75), black);
background: linear-gradient(to bottom right, rgba(255, 255, 255, 0.75), black); }
.notouch .button:not(.button--no-hover):hover {
box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.2); }
.notouch .button:not(.button--no-hover):hover:before {
opacity: 0.2; }
.button:active {
-webkit-transition: none !important;
-moz-transition: none !important;
@ -3439,10 +3415,13 @@ select {
transition: none !important;
transform: translate(1px, 1px); }
.light-theme .button--default {
background: #181818;
color: #FFFFFF; }
border-color: #121212; }
.light-theme .button--default:active {
background: #000000; }
background: rgba(128, 128, 128, 0.2); }
.dark-theme .button--default {
border-color: #FFFFFF; }
.dark-theme .button--default:active {
background: rgba(128, 128, 128, 0.2); }
.button--small {
padding: 6px 18px 4px; }
.button--large {
@ -3452,93 +3431,87 @@ select {
margin-left: 30px; }
.button--primary {
background: #08d58f;
border-color: #08d58f;
color: #FFFFFF; }
.button--primary:active {
background: #06a46e; }
background: #06a46e;
border-color: #06a46e; }
.button--darken {
background: rgba(0, 0, 0, 0.8);
color: #FFFFFF; }
.button--darken:active {
background: rgba(0, 0, 0, 0); }
border-color: rgba(0, 0, 0, 0.8); }
.button--lighten {
background: rgba(255, 255, 255, 0.8);
color: #121212; }
border-color: rgba(255, 255, 255, 0.8); }
.button--secondary {
background: #32b5f2;
color: #FFFFFF; }
.button--secondary:active {
background: #0e9fe3; }
.button--default, .button--white {
.button--white {
background: #FFFFFF;
color: #000000; }
.button--default:active, .button--white:active {
background: #e6e6e6; }
.button--white:active {
background: rgba(128, 128, 128, 0.2); }
.button--grey {
background: #383734;
color: #FFFFFF; }
.button--grey:active {
background: #1e1d1b; }
border-color: #383734; }
.button--black {
background: #121212;
color: #FFFFFF; }
.button--black:active {
background: black; }
border-color: #121212; }
.button--confirming, .button--destructive {
background: #cf2d2d;
color: #FFFFFF; }
border-color: #cf2d2d;
color: #cf2d2d; }
.button--confirming:active, .button--destructive:active {
background: #a52424; }
background: rgba(128, 128, 128, 0.2); }
.button--timing-out {
position: relative; }
.button--timing-out:before {
animation-name: shrink_from_right;
animation-duration: 2s;
animation-timing-function: linear;
pointer-events: none;
display: inline-block;
content: "";
animation: spin 2s infinite linear;
width: 1.2em;
height: 1.2em;
border-radius: 100px;
position: absolute;
top: 0;
left: 0;
bottom: 0;
width: 0;
background: #000000;
opacity: 0.25; }
left: 50%;
margin-left: -0.6em;
border: 2px solid transparent;
border-top-color: rgba(128, 128, 128, 0.5);
border-right-color: rgba(128, 128, 128, 0.5);
z-index: 1;
box-sizing: border-box; }
.button--discrete {
background: transparent;
color: #FFFFFF; }
.light-theme .button--discrete {
color: #121212; }
border: none; }
.button--discrete:before {
display: none; }
.button--working {
position: relative;
cursor: wait !important;
background: #383734;
color: #a3a19f; }
.button--working:after {
color: rgba(0, 0, 0, 0) !important; }
.button--working:before {
pointer-events: none;
position: absolute;
display: block;
display: inline-block;
content: "";
animation: slideloader 1s infinite linear;
background: rgba(200, 200, 200, 0.3);
top: 0;
left: 0;
bottom: 0;
right: 0;
z-index: 1; }
animation: spin 1s infinite linear;
width: 1.2em;
height: 1.2em;
border-radius: 100px;
position: absolute;
left: 50%;
margin-left: -0.6em;
border: 2px solid transparent;
border-top-color: rgba(128, 128, 128, 0.5);
border-right-color: rgba(128, 128, 128, 0.5);
z-index: 1;
box-sizing: border-box; }
.button--disabled, .button[disabled], .button[disabled="disabled"] {
opacity: 0.5;
cursor: not-allowed !important;
color: #a3a19f;
border-color: #a3a19f;
background: transparent; }
.button--disabled:before, .button[disabled]:before, .button[disabled="disabled"]:before {
opacity: 0.15; }
@media (max-width: 799px) {
.button {
margin-right: 10px;
padding-left: 20px;
padding-right: 20px; } }
padding-left: 28px;
padding-right: 28px; } }
.field {
-webkit-touch-callout: none;
@ -3666,7 +3639,7 @@ select {
.context-menu {
position: fixed;
z-index: 99;
font-size: 14px;
font-size: 13px;
font-weight: 500;
font-family: "Overpass"; }
.context-menu__section {
@ -3676,7 +3649,6 @@ select {
transition: all 0.2s ease-in-out;
overflow-y: scroll; }
.context-menu__section--submenu {
background: #52514d;
z-index: 3;
border-radius: 3px;
transform: translateX(100%);
@ -3704,8 +3676,8 @@ select {
padding: 9px 12px 8px;
box-sizing: border-box;
position: relative;
color: #FFFFFF;
text-decoration: none; }
text-decoration: none;
color: inherit; }
.context-menu__item__link:before {
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
@ -3722,14 +3694,14 @@ select {
opacity: 0;
z-index: 9;
pointer-events: none;
background: -webkit-linear-gradient(to bottom right, rgba(255, 255, 255, 0.75), black);
background: -moz-linear-gradient(to bottom right, rgba(255, 255, 255, 0.75), black);
background: -o-linear-gradient(to bottom right, rgba(255, 255, 255, 0.75), black);
background: linear-gradient(to bottom right, rgba(255, 255, 255, 0.75), black); }
background: -webkit-linear-gradient(to bottom right, rgba(200, 200, 200, 0.75), #646464);
background: -moz-linear-gradient(to bottom right, rgba(200, 200, 200, 0.75), #646464);
background: -o-linear-gradient(to bottom right, rgba(200, 200, 200, 0.75), #646464);
background: linear-gradient(to bottom right, rgba(200, 200, 200, 0.75), #646464); }
.notouch .context-menu__item__link:hover:before {
opacity: 0.15; }
.notouch .context-menu__item__link:active {
background: #000000;
background: #08d58f;
color: #FFFFFF; }
.context-menu__item__link .icon {
font-size: 12px; }
@ -3742,7 +3714,8 @@ select {
height: 1px;
padding: 0;
margin: 0;
background: #454440; }
background: rgba(128, 128, 128, 0.5);
opacity: 0.5; }
.context-menu--submenu-expanded .context-menu__section {
transform: translateX(-100%);
opacity: 0; }
@ -3751,10 +3724,14 @@ select {
opacity: 1; }
@media (min-width: 800px) {
.context-menu {
background: #383734;
width: 200px;
overflow-x: hidden;
border-radius: 3px; }
border-radius: 3px;
box-shadow: 2px 3px 6px rgba(0, 0, 0, 0.2); }
.light-theme .context-menu {
background: #FFFFFF; }
.dark-theme .context-menu {
background: #383734; }
.context-menu--closing {
display: none; }
.context-menu__section {
@ -3766,6 +3743,10 @@ select {
left: 0;
right: 0;
bottom: 0; }
.dark-theme .context-menu__section--submenu {
background: #383734; }
.light-theme .context-menu__section--submenu {
background: #FFFFFF; }
.context-menu__title {
display: none; } }
@media (max-width: 799px) {
@ -4268,10 +4249,10 @@ select {
opacity: 0;
z-index: 9;
pointer-events: none;
background: -webkit-linear-gradient(to bottom right, rgba(255, 255, 255, 0.75), black);
background: -moz-linear-gradient(to bottom right, rgba(255, 255, 255, 0.75), black);
background: -o-linear-gradient(to bottom right, rgba(255, 255, 255, 0.75), black);
background: linear-gradient(to bottom right, rgba(255, 255, 255, 0.75), black); }
background: -webkit-linear-gradient(to bottom right, rgba(200, 200, 200, 0.75), #646464);
background: -moz-linear-gradient(to bottom right, rgba(200, 200, 200, 0.75), #646464);
background: -o-linear-gradient(to bottom right, rgba(200, 200, 200, 0.75), #646464);
background: linear-gradient(to bottom right, rgba(200, 200, 200, 0.75), #646464); }
.light-theme .dropzones .dropzone {
background: #cecac4;
color: #121212; }
@ -4418,7 +4399,7 @@ select {
.parallax--loaded .parallax__image {
opacity: 0.5; }
.light-theme .parallax__stage {
background-color: #f8f7f6; }
background-color: #f4f2f0; }
.light-theme .parallax__overlay {
background-image: linear-gradient(rgba(248, 247, 246, 0) 0%, #f8f7f6 95%); }
@ -4953,14 +4934,18 @@ select {
bottom: 48px;
right: -150px;
width: 300px;
background: #f4f2f0;
color: #000000;
font-size: 14px;
font-weight: 600;
text-align: left;
border-radius: 3px;
box-shadow: 2px 3px 6px rgba(0, 0, 0, 0.2);
z-index: 9; }
.dark-theme .output-control__items {
color: #FFFFFF;
background: #43413e; }
.light-theme .output-control__items {
color: #121212;
background: #FFFFFF; }
.output-control__items:after {
content: '';
display: block;
@ -5068,9 +5053,6 @@ select {
border-radius: 0;
box-shadow: none;
max-height: 50vh; }
.dark-theme .output-control__items {
color: #FFFFFF;
background: #43413e; }
.output-control__items:after {
display: none; }
.output-control__items--no-results {
@ -5120,8 +5102,6 @@ select {
padding-top: 20px;
line-height: 1em; }
.sidebar__menu__item {
position: relative;
border-radius: 3px;
font-family: "Overpass";
font-weight: 600;
font-size: 1.05rem;
@ -5131,27 +5111,34 @@ select {
padding: 0.75em 0.85em;
margin: 0 1.1em;
border-radius: 3px; }
.sidebar__menu__item:before {
.dark-theme .sidebar__menu__item {
position: relative;
border-radius: 3px; }
.dark-theme .sidebar__menu__item:before {
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
border-radius: 3px;
content: "";
display: block;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
opacity: 0;
z-index: 9;
pointer-events: none;
background: -webkit-linear-gradient(to bottom right, rgba(200, 200, 200, 0.75), #646464);
background: -moz-linear-gradient(to bottom right, rgba(200, 200, 200, 0.75), #646464);
background: -o-linear-gradient(to bottom right, rgba(200, 200, 200, 0.75), #646464);
background: linear-gradient(to bottom right, rgba(200, 200, 200, 0.75), #646464); }
.light-theme .sidebar__menu__item {
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
border-radius: 3px;
content: "";
display: block;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
opacity: 0;
z-index: 9;
pointer-events: none;
background: -webkit-linear-gradient(to bottom right, rgba(255, 255, 255, 0.75), black);
background: -moz-linear-gradient(to bottom right, rgba(255, 255, 255, 0.75), black);
background: -o-linear-gradient(to bottom right, rgba(255, 255, 255, 0.75), black);
background: linear-gradient(to bottom right, rgba(255, 255, 255, 0.75), black); }
.light-theme .sidebar__menu__item {
color: #121212;
font-weight: 600; }
.sidebar__menu__item .icon {
@ -5164,9 +5151,7 @@ select {
padding-left: 8px; }
.sidebar__menu__item--active {
background: #08d58f;
color: #FFFFFF; }
.light-theme .sidebar__menu__item--active {
color: #FFFFFF; }
color: #FFFFFF !important; }
.sidebar__menu__item--active .status .icon {
color: #FFFFFF !important; }
.sidebar__menu__item--active:before {
@ -5176,6 +5161,8 @@ select {
cursor: not-allowed; }
.sidebar__menu__item:hover:not([disabled]):before {
opacity: 0.15; }
.light-theme .sidebar__menu__item:hover:not([disabled]) {
color: #454545; }
.sidebar__menu__item:focus:not([disabled]):not(.sidebar__menu__item--active) {
background: rgba(128, 128, 128, 0.25); }
.sidebar__menu__item:active {
@ -5191,8 +5178,7 @@ select {
padding: 0 26px 5px 26px;
font-size: 12px;
text-transform: uppercase;
opacity: 0.5;
color: #a3a19f; }
color: rgba(128, 128, 128, 0.5); }
.sidebar .close {
display: none;
position: absolute;
@ -5617,7 +5603,8 @@ main header {
margin: 0;
min-width: 0;
color: #cecac4;
vertical-align: unset; }
vertical-align: unset;
border: none; }
main header .header__options .button:hover,
main header .header__options button:hover {
color: #32b5f2;
@ -5855,12 +5842,13 @@ main header {
-ms-user-select: none;
user-select: none;
font-size: 13px;
font-weight: 800;
font-weight: 500;
font-family: "Overpass";
position: relative;
display: inline-block; }
.dropdown-field__label {
display: flex; }
display: flex;
font-weight: 800; }
.dropdown-field__label__name {
display: none; }
.dropdown-field__label .icon {
@ -5902,7 +5890,7 @@ main header {
top: -3px;
right: 9px; }
.light-theme .dropdown-field__options:before {
background: #f4f2f0; }
background: #FFFFFF; }
.dropdown-field__options__liner {
color: #000000;
background: #FFFFFF;
@ -5911,22 +5899,25 @@ main header {
overflow-y: auto;
border-radius: 3px; }
.light-theme .dropdown-field__options__liner {
background: #f4f2f0; }
background: #FFFFFF; }
.dropdown-field__options__item {
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
position: relative;
border-radius: 3px;
position: relative;
padding: 9px 12px 8px 24px;
cursor: pointer;
color: #000000; }
color: #121212; }
.dropdown-field__options__item:before {
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
content: '';
border-radius: 3px;
content: "";
display: block;
position: absolute;
top: 0;
@ -5935,17 +5926,18 @@ main header {
left: 0;
opacity: 0;
z-index: 9;
background: -webkit-linear-gradient(to bottom right, white, rgba(0, 0, 0, 0.5));
background: -moz-linear-gradient(to bottom right, white, rgba(0, 0, 0, 0.5));
background: -o-linear-gradient(to bottom right, white, rgba(0, 0, 0, 0.5));
background: linear-gradient(to bottom right, white, rgba(0, 0, 0, 0.5)); }
pointer-events: none;
background: -webkit-linear-gradient(to bottom right, rgba(200, 200, 200, 0.75), #646464);
background: -moz-linear-gradient(to bottom right, rgba(200, 200, 200, 0.75), #646464);
background: -o-linear-gradient(to bottom right, rgba(200, 200, 200, 0.75), #646464);
background: linear-gradient(to bottom right, rgba(200, 200, 200, 0.75), #646464); }
.dropdown-field__options__item .icon {
position: absolute;
top: 8px;
left: 6px;
font-size: 16px; }
.notouch .dropdown-field__options__item:hover {
color: #000000; }
color: #121212; }
.notouch .dropdown-field__options__item:hover:before {
opacity: 0.15; }
@ -6266,7 +6258,7 @@ main header {
padding: 0 5px;
display: block;
box-sizing: border-box;
border: 0; }
border: none !important; }
.services .menu .menu-item__inner {
position: relative;
padding: 30px 10px;

File diff suppressed because one or more lines are too long

View File

@ -56533,16 +56533,13 @@ var GeniusAuthenticationFrame = function (_React$Component) {
value: function render() {
var _this2 = this;
if (this.state.authorizing) {
var authorizing = this.state.authorizing;
if (this.props.authorized) {
return _react2.default.createElement(
'a',
{ className: 'button button--working' },
'Authorizing...'
);
}if (this.props.authorized) {
return _react2.default.createElement(
'a',
{ className: 'button button--destructive', onClick: function onClick(e) {
{ className: "button button--destructive" + (authorizing ? ' button--working' : ''), onClick: function onClick(e) {
return _this2.props.geniusActions.revokeAuthorization();
} },
'Log out'
@ -56550,7 +56547,7 @@ var GeniusAuthenticationFrame = function (_React$Component) {
}
return _react2.default.createElement(
'a',
{ className: 'button button--primary', onClick: function onClick(e) {
{ className: "button button--primary" + (authorizing ? ' button--working' : ''), onClick: function onClick(e) {
return _this2.startAuthorization();
} },
'Log in'
@ -56764,16 +56761,13 @@ var LastfmAuthenticationFrame = function (_React$Component) {
value: function render() {
var _this2 = this;
if (this.state.authorizing) {
var authorizing = this.state.authorizing;
if (this.props.authorization) {
return _react2.default.createElement(
'a',
{ className: 'button button--working' },
'Authorizing...'
);
}if (this.props.authorization) {
return _react2.default.createElement(
'a',
{ className: 'button button--destructive', onClick: function onClick(e) {
{ className: "button button--destructive" + (authorizing ? ' button--working' : ''), onClick: function onClick(e) {
return _this2.props.lastfmActions.revokeAuthorization();
} },
'Log out'
@ -56781,7 +56775,7 @@ var LastfmAuthenticationFrame = function (_React$Component) {
}
return _react2.default.createElement(
'a',
{ className: 'button button--primary', onClick: function onClick(e) {
{ className: "button button--primary" + (authorizing ? ' button--working' : ''), onClick: function onClick(e) {
return _this2.startAuthorization();
} },
'Log in'
@ -58074,16 +58068,14 @@ var SpotifyAuthenticationFrame = function (_React$Component) {
value: function render() {
var _this2 = this;
if (this.state.authorizing) {
var authorizing = this.state.authorizing;
var authorized = this.props.authorized;
if (authorized) {
return _react2.default.createElement(
'a',
{ className: 'button button--working' },
'Authorizing...'
);
}if (this.props.authorized) {
return _react2.default.createElement(
'a',
{ className: 'button button--destructive', onClick: function onClick(e) {
{ className: 'button button--destructive ' + (authorizing ? 'button--working' : ''), onClick: function onClick(e) {
return _this2.props.spotifyActions.revokeAuthorization();
} },
'Log out'
@ -58091,7 +58083,7 @@ var SpotifyAuthenticationFrame = function (_React$Component) {
}
return _react2.default.createElement(
'a',
{ className: 'button button--primary', onClick: function onClick(e) {
{ className: 'button button--primary ' + (authorizing ? 'button--working' : ''), onClick: function onClick(e) {
return _this2.startAuthorization();
} },
'Log in'
@ -61697,8 +61689,8 @@ var Services = function (_React$Component) {
_react2.default.createElement(_SpotifyAuthenticationFrame2.default, null),
this.props.spotify.refreshing_token ? _react2.default.createElement(
'a',
{ className: 'button button--working' },
'Refreshing...'
{ className: 'button button--default button--working' },
'Force token refres'
) : _react2.default.createElement(
'a',
{

File diff suppressed because one or more lines are too long

View File

@ -100,7 +100,7 @@
// Release details
// These are automatically injected to built HTML
var build = "1575347346";
var build = "1575655338";
var version = "3.42.2";
// Construct the script tag