stylus/manage/manage.css
2020-03-10 19:22:57 -05:00

696 lines
14 KiB
CSS

:root {
--icon-size: 20px;
--narrow-column: 60px;
--header-height: 40px;
--entry-header-height: 25px;
--onoffswitch-width: 60px;
}
html {
box-sizing: border-box;
}
*, *:before, *:after {
box-sizing: inherit;
}
body {
margin: 0;
/* Firefox: fill the entire page for drag'n'drop to work */
display: flex;
height: 100%;
}
body.dark {
background: #181818;
color: #ddd;
}
a,
.disabled a:hover {
color: #000;
transition: color .5s;
}
a {
cursor: pointer;
}
a:hover {
color: #666;
}
.invisible {
visibility: hidden;
pointer-events: none;
}
.svg-icon {
cursor: pointer;
vertical-align: middle;
transition: fill .5s;
width: var(--icon-size);
height: var(--icon-size);
fill: #666;
}
.entry-actions > a {
margin-left: 2px;
}
.svg-icon:hover {
fill: #000;
}
#header {
background: #111;
color: #ddd;
position: fixed;
top: 0;
width: 100vw;
height: var(--header-height);
z-index: 100;
padding: 2px 8px;
margin: 0;
}
#header .ext-version {
font-size: .5em;
}
#header svg {
vertical-align: bottom;
}
#header .tabs {
float: right;
margin-right: 20px;
}
#header .tabs a {
font-size: .7em;
color: #aaa;
text-decoration: none;
}
#header .tabs a.active,
#header .tabs a:hover {
color: #c0fff0;
}
#header:lang(ja) {
font-weight: normal;
}
#installed .entry-header {
background: #eee;
position: fixed;
top: var(--header-height);
height: var(--entry-header-height);
z-index: 100;
}
#installed .entry,
#installed .entry-header {
width: calc(100vw - 1.5em);
display: flex;
flex: 0 0 var(--narrow-column);
flex-flow: row nowrap;
align-content: stretch;
align-items: center;
justify-content: center;
}
.entry-header {
margin: 0;
padding: 0 4px;
}
#installed .entry:nth-child(2) {
margin-top: calc(var(--header-height) + var(--entry-header-height));
}
#installed .entry:last-child {
margin-bottom: 10px;
}
.entry {
margin: 0;
padding: 4px 8px;
border-top: 1px solid #ddd;
}
.entry-col {
padding-left: 4px;
flex: 1;
justify-content: space-evenly;
}
.center-text,
.entry-filter,
.entry-state,
.entry-sort,
.entry-last-update {
text-align: center;
justify-content: center;
max-width: var(--narrow-column);
padding: 0;
}
.header-version,
.entry-version {
max-width: var(--narrow-column);
}
.header-name,
.entry-name {
flex: 3;
}
.header-id,
.entry-id {
text-align: right;
padding-right: 8px;
max-width: 50px;
}
.entry, .targets {
position: relative;
display: flex;
justify-content: start;
}
.entry-name {
overflow-wrap: break-word;
font-weight: 600;
text-decoration: none;
margin-right: 8px;
}
.entry-sort {
cursor: move;
}
.targets {
flex-wrap: wrap;
}
.targets .target {
max-width: var(--icon-size);
max-height: var(--icon-size);
width: var(--icon-size);
margin-left: 2px;
}
.applies-to-extra img.target {
margin-bottom: 2px;
}
#installed.faviconsGray img.target {
-webkit-filter: grayscale(1);
filter: grayscale(1);
}
.entry.odd {
background-color: rgba(128, 128, 128, 0.05);
}
.entry:hover div.entry-name:before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(to right, hsla(180, 50%, 30%, 0.2), hsla(180, 20%, 10%, 0.05) 50%, transparent);
pointer-events: none;
}
body.dragging .entry:not(.dragging) .entry-name:before {
/* hide the sustained hover */
background-image: none !important;
}
.entry.dragging {
background: linear-gradient(to right, hsla(350, 50%, 30%, 0.2), hsla(180, 20%, 10%, 0.05) 50%, transparent);
}
.entry.enabled .entry-name:hover .style-name {
color: hsla(180, 100%, 15%, 1);
}
.entry:hover .svg-icon:hover {
fill: #000;
}
.entry-label {
padding: 2px 4px;
margin-left: 2px;
border-radius: 4px;
font-size: .8em;
}
.entry-label.usercss {
background-color: hsla(180, 100%, 20%, 1);
color: white;
text-transform: lowercase;
}
.entry-label.disabled {
background: rgba(128, 128, 128, .2);
color: #222;
}
.disabled .entry-name,
.disabled .entry-actions,
.disabled .entry-sort,
.disabled .entry-version,
.disabled .entry-last-update {
opacity: 0.6;
font-weight: normal;
transition: opacity .5s .1s;
}
.disabled:hover .entry-actions {
opacity: 1;
}
.disabled .entry-applies-to .svg-icon {
fill: rgba(92, 92, 92, 0.6);
}
a svg, .svg-icon.sort {
pointer-events: none;
}
/* Checkbox */
input.entry-filter:checked + svg.checkbox,
input.entry-state-toggle:checked + svg.checkbox {
background: #66bb6a;
border-radius: var(--icon-size);
}
input[type="checkbox"].entry-filter,
input[type="checkbox"].entry-state-toggle,
input.entry-filter:checked + svg.checkbox .circle,
input.entry-state-toggle:checked + svg.checkbox .circle,
input.entry-filter:not(:checked) + svg .checkmark,
input.entry-state-toggle:not(:checked) + svg .checkmark {
display: none;
}
input.entry-filter:checked + svg.checkbox .checkmark,
input.entry-state-toggle:checked + svg.checkbox .checkmark {
fill: white;
}
.checking-update .check-update {
opacity: 0;
display: inline-block;
pointer-events: none;
}
.can-update .update,
.no-update:not(.update-problem):not(.update-done) .up-to-date,
.no-update.update-problem .check-update,
.update-done .updated {
display: inline-block;
}
.up-to-date svg,
.updated svg {
cursor: auto;
}
.update-done .updated svg {
top: -4px;
position: relative;
/* unprefixed since Chrome 53 */
-webkit-filter: drop-shadow(0 4px 0 currentColor);
filter: drop-shadow(0 5px 0 currentColor);
}
.can-update .update,
.no-update.update-problem .check-update {
cursor: pointer;
}
.can-update[data-details$="locally edited"] .update svg,
.update-problem .check-update svg {
fill: #ef6969;
}
.can-update[data-details$="locally edited"]:hover .update svg,
.entry.update-problem:hover .check-update svg {
fill: #fd4040;
}
.can-update[data-details$="locally edited"]:hover .update svg:hover,
.entry.update-problem:hover .check-update svg:hover {
fill: red;
}
.updater-icons > :not(.check-update):after {
content: attr(title);
position: absolute;
margin-top: 18px;
margin-left: -36px;
padding: 1ex 1.5ex;
border: 1px solid #ded597;
background-color: #fffbd6;
border-radius: 4px;
box-shadow: 2px 3px 10px rgba(0,0,0,.25);
font-size: 90%;
animation: fadeout 10s;
animation-fill-mode: both;
}
.update-problem .check-update:after {
background-color: red;
border: 1px solid #d40000;
color: white;
animation: none;
}
.can-update .update:after {
animation: none;
}
.can-update:not([data-details$="locally edited"]) .update:after {
background-color: #c0fff0;
border: 1px solid #89cac9;
}
.entry .svg-icon.world {
fill: #ef6969;
}
img.target:hover {
background-color: inherit;
}
img.target {
width: var(--icon-size);
height: var(--icon-size);
vertical-align: sub;
transition: opacity .5s, filter .5s;
/* unprefixed since Chrome 53 */
-webkit-filter: grayscale(1);
filter: grayscale(1);
/* workaround for the buggy CSS filter: images in the hidden overflow are shown on Mac */
backface-visibility: hidden;
opacity: .5;
}
.entry:hover img.target {
opacity: 1;
/* unprefixed since Chrome 53 */
-webkit-filter: grayscale(0);
filter: grayscale(0);
}
.targets details.applies-to-extra {
margin-left: 4px;
margin-top: 5px;
}
details.applies-to-extra[open] {
position: absolute;
background: #eee;
z-index: 90;
padding: 10px;
}
#faviconsHelp {
overflow-y: auto;
font-size: 90%;
padding: 1ex 0 2ex 16px;
}
#faviconsHelp div {
display: flex;
align-items: center;
margin-top: 1ex;
}
/* Default, no update buttons */
.updater-icons .update,
.updater-icons .check-update {
display: none;
}
.updater-icons > * {
transition: opacity 1s;
display: none;
}
/* Check update button for things that can */
.updatable .check-update {
display: inline-block;
}
/* Update check in progress */
.checking-update .check-update {
display: none;
}
/* Updates available */
.can-update .update {
display: inline-block;
}
.can-update[data-details$="locally edited"] button.update:after {
content: "*";
}
.can-update .check-update {
display: none;
}
/* Updates not available */
.no-update:not(.update-problem) .check-update {
display: none;
}
/* Updates done */
.update-done .check-update {
display: none;
}
#apply-all-updates:after {
content: " (" attr(data-value) ")";
}
.update-in-progress #check-all-updates {
position: relative;
}
.update-in-progress #update-progress {
position: absolute;
top: 0;
left: 0;
bottom: 0;
background-color: currentColor;
content: "";
opacity: .35;
}
#check-all-updates-force {
margin-top: 1ex;
}
#update-all-no-updates[data-skipped-edited="true"] {
font-weight: bold;
}
#update-all-no-updates[data-skipped-edited="true"]::after {
font-weight: normal;
display: block;
}
/* highlight updated/added styles */
.highlight {
animation: highlight 10s cubic-bezier(0,.82,.47,.98);
}
.highlight-quick {
animation: highlight .5s;
}
@keyframes highlight {
from {
background-color: rgba(128, 128, 128, .5);
}
to {
background-color: none;
}
}
.hidden {
display: none !important;
}
/* drag-n-drop on import button */
.dropzone:after {
background-color: rgba(0, 0, 0, 0.7);
color: white;
left: 0;
top: 0;
right: 0;
bottom: 0;
z-index: 1000;
position: fixed;
padding: calc(50vh - 3em) calc(50vw - 5em);
content: attr(dragndrop-hint);
text-shadow: 1px 1px 10px black;
font-size: xx-large;
text-align: center;
animation: fadein 1s cubic-bezier(.03, .67, .08, .94);
animation-fill-mode: both;
}
.fadeout.dropzone:after {
animation: fadeout .25s ease-in-out;
animation-fill-mode: both;
}
/* post-import report */
#message-box details:not([data-id="invalid"]) div:hover {
background-color: rgba(128, 128, 128, .3);
}
#message-box details:not(:last-child) {
margin-bottom: 1em;
}
#message-box details small div {
margin-left: 1.5em;
}
.update-history-log {
font-size: 11px;
white-space: pre;
overflow-x: hidden;
text-overflow: ellipsis;
}
/* export/import buttons */
#backup-buttons .dropbtn {
padding: 3px 7px;
cursor: pointer;
text-overflow: inherit;
}
#backup-buttons .dropbtn span {
display: inline-block;
margin-right: 12px;
}
#backup-buttons .dropdown {
position: relative;
display: inline-block;
}
#backup-buttons .dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
z-index: 1;
}
#backup-buttons .dropdown-content a {
color: black;
padding: 8px;
text-decoration: none;
display: block;
}
#backup-buttons .dropdown-content a:hover {
/* background-color: #f2f2f2 */
background-color: #e9e9e9
}
#backup-buttons .dropdown:hover .dropdown-content {
display: block;
}
#backup-buttons .dropdown:hover .dropbtn {
background-color: hsl(0, 0%, 95%);
border-color: hsl(0, 0%, 52%);
/* background-color: #3e8e41; */
}
/* sort font */
@font-face {
font-family: 'sorticon';
src: url('data:application/x-font-ttf;base64,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') format('truetype');
font-weight: normal;
font-style: normal;
unicode-range: U+21E9;
}
#manage.sort {
font-family: 'sorticon', Arial;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
#stylus-embedded-options {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100vh;
border: 0;
z-index: 2147483647;
background-color: hsla(0, 0%, 0%, .45);
animation: fadein .25s ease-in-out;
}
#stylus-embedded-options.fadeout {
animation: fadeout .25s ease-in-out;
}
@keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes fadeout {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
@keyframes fadein-25pct {
from {
opacity: 0;
}
to {
opacity: .25;
}
}
@media (max-width: 1000px) {
}
/* Deprecated dropbox backup (dropbox-sync) */
#sync-dropbox-export,
#sync-dropbox-import {
opacity: 0.5;
cursor: not-allowed;
}
#backup-buttons .dropdown-content #sync-dropbox-export:hover,
#backup-buttons .dropdown-content #sync-dropbox-import:hover {
background: transparent;
}