:root { --header-icon-size: 20px; --entry-icon-size: 20px; --favicon-size: 16px; --narrow-column: 60px; --header-height: 40px; --toolbar-height: 40px; --entry-height: 30px; --onoffswitch-width: 60px; --header-bg-color: #2c2c2c; --header-text-color: #ddd; --header-text-hover-color: #066; --header-icon-color: #888; --header-icon-hover-color: #2afefe; --tools-bg-color: #ccc; --tools-bg-hover: #eee; --entry-header-bg-color: #ddd; --entry-header-text-color: #111; --entry-text-hover: #007a7a; --entry-text-disabled: #3c3c3c; --entry-icon-color: #666; --entry-icon-hover-color: #007a7a; --entry-border-color: #ddd; --delete-icon-hover-color: #d40000; --label-usercss-bg-color: #066; --label-usercss-text-color: #fff; --checked-count-bg-color: #066; --checked-count-text-color: #fff; --checkbox-bg-color: #007a7a; --checkbox-icon-color: #fff; } 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: var(--entry-text-disabled); transition: color .5s; } a { cursor: pointer; } a:hover { color: var(--entry-text-hover); } body a[disabled], body button[disabled] { cursor: default; } .invisible { visibility: hidden; pointer-events: none; } .svg-icon { width: var(--entry-icon-size); height: var(--entry-icon-size); vertical-align: middle; transition: fill .5s; fill: var(--entry-icon-color); } .svg-icon:not(.no-pointer) { cursor: pointer; } #main-header .svg-icon { width: var(--header-icon-size); height: var(--header-icon-size); fill: var(--header-icon-color); } #main-actions { display: flex; width: 320px; height: 40px; justify-content: space-between; align-items: center; margin-right: 10px; } #main-actions a, #main-actions div { margin-right: 4px; } /* header vertical separator between icon groups */ .spacer { width: 10px; height: 1em; border-right: 1px solid rgba(119, 119, 119, .5); margin-right: 10px; } .entry-actions > a, .bulk-actions-select-wrapper, #bulk-actions-apply { position: relative; margin-left: 2px; } #bulk-actions { justify-content: flex-start; align-items: center; } #bulk-info > span, #bulk-info button { display: flex; align-items: center; margin-left: 4px; } #bulk-actions .svg-icon.busy:not(.hidden) { -webkit-animation:spin 1s linear infinite; -moz-animation:spin 1s linear infinite; animation:spin 1s linear infinite; } @-moz-keyframes spin { 100% { -moz-transform: rotate(360deg); } } @-webkit-keyframes spin { 100% { -webkit-transform: rotate(360deg); } } @keyframes spin { 100% { -webkit-transform: rotate(360deg); transform:rotate(360deg); } } .entry-header a:hover .svg-icon:not(.no-pointer), .entry a:hover .svg-icon:not(.no-pointer), .svg-icon:not(.no-pointer):hover { fill: var(--entry-icon-hover-color); } .entry .entry-delete:hover .svg-icon { fill: var(--delete-icon-hover-color); } #main-header { background: var(--header-bg-color); color: var(--header-text-color); position: fixed; top: 0; width: 100%; height: var(--header-height); z-index: 101; padding: 0 4px; margin: 0; display: flex; align-items: center; justify-content: space-between; } #main-header .ext-version { font-size: .5em; } #main-header svg { vertical-align: bottom; } #main-header a:hover, #main-actions a:hover svg, .manage-backups:hover svg { color: var(--header-icon-hover-color); fill: var(--header-icon-hover-color); } #main-header:lang(ja) { font-weight: normal; } #installed, #options, #backup { width: 100%; margin-top: calc(var(--header-height) + var(--entry-height)); } #installed .entry-header { background: var(--entry-header-bg-color); color: var(--entry-header-text-color); position: fixed; top: var(--header-height); z-index: 100; } #installed .entry, #installed .entry-header { width: 100%; display: flex; flex: 0 0 var(--narrow-column); flex-flow: row nowrap; align-content: stretch; align-items: center; justify-content: center; padding: 0; } #installed .entry:last-child { margin-bottom: 10px; } body.all-styles-hidden-by-filters #installed:after { font-size: 20px; position: relative; top: 20px; left: 30px; } .entry-header { margin: 0; padding: 0 4px; } .entry { margin: 0; padding: 4px 8px; border-top: 1px solid var(--entry-border-color); } .entry-col { padding-left: 4px; flex: 1; justify-content: space-evenly; line-height: var(--entry-height); } .entry-col .col-label { display: none; } .center-text, .entry-filter, .entry-state, .entry-last-update { text-align: center; justify-content: center; max-width: var(--narrow-column); padding: 0; } .header-last-update, .entry-last-update { /* inlcude update history link */ max-width: calc(var(--narrow-column) + 30px); } /* keep all icons on the same row */ .entry-actions { white-space: pre; } .header-state { min-width: 65px; } .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: auto 8px auto 0; padding: 0; align-self: normal; } .entry-name-text { display: inline-block; max-width: 30vw; overflow: hidden; text-overflow: ellipsis; vertical-align: top; white-space: nowrap; } .entry-header:not(.sortable) { cursor: default; } .sortable { align-self: center; cursor: pointer; text-decoration: none; } .sortable[data-sort-dir="asc"] span:after, .sortable[data-sort-dir="desc"] span:after { font-size: 16px; position: relative; top: 2px; } .sortable[data-sort-dir="asc"] span:after { content: '▴'; } .sortable[data-sort-dir="desc"] span:after { content: '▾'; } .header-filter:hover .svg-icon, .header-filter.active svg { transition: all .5s; color: var(--entry-text-hover); fill: var(--entry-text-hover); } .targets { flex-wrap: wrap; } .targets .target { display: inline-block; padding: 2px; line-height: var(--favicon-size); } .targets .applies-to-extra .target { padding: 2px; } .applies-to-extra-expander { text-decoration: none; font-size: 1.3em; font-weight: bold; line-height: normal; } .targets .target img, .targets .target svg { max-width: var(--favicon-size); max-height: var(--favicon-size); width: var(--favicon-size); } #installed:not(.has-favicons) .targets img, #installed.has-favicons .targets img:not([src]), #installed.has-favicons .targets img[src] + svg { display: none; } #installed.faviconsGray .target img { -webkit-filter: grayscale(1); filter: grayscale(1); } .entry.odd { background-color: rgba(128, 128, 128, 0.05); } .entry:hover: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; } .entry.enabled:hover .entry-name, .entry:hover .svg-icon:hover { color: var(--entry-text-hover); fill: var(--entry-text-hover); } .header-labels { margin-left: 16px; justify-content: center } .header-label, .entry-label { padding: 2px 4px; margin-left: 2px; border-radius: 4px; font-size: .75em; text-transform: lowercase; } .entry-label { margin-left: 1em; } .header-label[data-type="usercss"], .entry-label[data-type="usercss"] { background-color: var(--label-usercss-bg-color); color: var(--label-usercss-text-color); text-transform: lowercase; } .header-label[data-type="disabled"], .entry-label[data-type="disabled"] { background: rgba(128, 128, 128, .2); color: #222; } .disabled .entry-name, .disabled .entry-actions, .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 */ .checkmate input:checked + svg.checkbox .filled-circle, svg.checkbox-enabled .filled-circle { fill: var(--checkbox-bg-color); display: block; } .checkmate input[type="checkbox"], .checkmate input:checked + svg.checkbox .circle, .checkmate input:not(:checked) + svg .checkmark, .checkmate input:not(:checked) + svg.checkbox .filled-circle, .checkmate input:not(:indeterminate) + svg .indeterminate { display: none; } .checkmate input:checked + svg.checkbox .checkmark, svg.checkbox-enabled .checkmark { fill: var(--checkbox-icon-color); } .checking-update .check-update { opacity: 0; display: inline-block; pointer-events: none; } #installed[data-sort="order"] .header-sort, /* Update icons */ .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 > .update:after { content: attr(data-title); border: 1px solid gold; background-color: goldenrod; } .entry-actions .entry-delete:after, .update-problem .check-update:after { background-color: #d40000; border: 1px solid red; color: white; } .update-problem.showTip { animation: fadeout 10s; animation-fill-mode: both; display: inline; } .can-update .update:after { animation: none; } .entry .svg-icon.world { fill: #ef6969; } .target:hover img { background-color: inherit; } .target img{ width: var(--entry-icon-size); height: var(--entry-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 .target img { opacity: 1; /* unprefixed since Chrome 53 */ -webkit-filter: grayscale(0); filter: grayscale(0); } .targets .applies-to-extra { margin-left: 4px; margin-top: 5px; cursor: pointer; } .entry.hide-extra .target.extra { display: none; } #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; } #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; } /* bulk actions */ #tools-wrapper { background: var(--tools-bg-color); width: 100vw; position: fixed; top: var(--header-height); left: 0; height: var(--toolbar-height); padding: 4px 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; } #tools-wrapper:not(.hidden) + #installed { margin-top: calc(var(--header-height) + var(--toolbar-height) + var(--entry-height)); } #tools-wrapper:not(.hidden) + #installed .entry-header { top: calc(var(--header-height) + var(--toolbar-height)); } .manage-row { padding: 2px 18px; display: flex; align-items: center; justify-content: flex-end; width: 50%; } #filters-wrapper, #bulk-filter-count { display: flex; align-items: center; margin-right: 20px; padding-left: 5px; } #filters-wrapper input { display: none; } #filters-wrapper svg { height: 16px; } .manage-row label, .manage-row button, .manage-row select { min-width: 2em; height: 24px; max-height: 24px; line-height: 24px; padding: 0 6px; margin: 0 2px; vertical-align: middle; align-items: center; display: inline-flex; flex-shrink: 0; cursor: pointer; } #filters-wrapper label:not(.checked):hover { background-color: var(--tools-bg-hover); } .manage-row select { padding-right: 20px; } .search-filter .svg-icon, .search-filter span { pointer-events: none; fill: currentColor; } .button-group { display: inline-flex; } .button-group label:first-child { margin-right: 0; border-right-width: 1px; } .button-group label:last-child { margin-left: 0; border-left-width: 0; } .manage-row button, .search-filter { background: #e0e1e2; border: 1px #9e9e9e solid; } .search-filter.checked, .search-filter.checked:hover { background-color: var(--label-usercss-bg-color); color: #fff; fill: #fff; } #search-wrapper { width: 30%; } #search { width: 100%; height: 2.2em; } #search-help { text-decoration: none; } /* 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; } #filters-stats, #bulk-filter-count:not(:empty) { background-color: var(--checked-count-bg-color); border-color: var(--checked-count-bg-color); border-radius: 2px; color: white; font-size: 0.7rem; font-weight: normal; padding: 2px 5px; position: relative; white-space: nowrap; } .filter-stats-wrapper { margin-left: .2rem; } #reset-filters svg { fill: hsla(180, 50%, 50%, .7); width: 24px; /* widen the click area a bit */ height: 20px; padding: 2px; box-sizing: border-box; } #reset-filters:hover svg { fill: var(--header-icon-hover-color); } .filter-stats-wrapper:not(.active) #reset-filters, .filter-stats-wrapper:not(.active) #filters-stats { display: none; } /* 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; } /* dropdown buttons */ .new-style, .manage-backups { position: relative; } .new-style .dropdown, .manage-backups .dropdown { display: none; background: transparent; padding-top: 10px; position: absolute; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2); z-index: 101; } .new-style .dropdown a, .manage-backups .dropdown a { background-color: #f9f9f9; color: black; padding: 8px; font-size: 12px; text-decoration: none; display: block; } #main-header .new-style .dropdown a:hover, #main-header .manage-backups .dropdown a:hover { /* background-color: #f2f2f2 */ background-color: #e9e9e9; color: var(--header-text-hover-color); } .new-style:hover .dropdown, .manage-backups:hover .dropdown { display: block; right: -20px; top: 100%; } /* make the popup on hover a little easier to use */ .new-style { padding-left: 20px; } /* 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: 1100px) { body, #main-header, #tools-wrapper, .manage-row { position: static; display: block; height: auto; } #installed .entry-header { position: static; width: 100%; height: auto; } .new-style, .manage-backups { display: inline-block; vertical-align: center; } .new-style:hover .dropdown, .manage-backups:hover .dropdown { display: block; left: -20px; right: auto; top: 99%; } #installed, #tools-wrapper:not(.hidden) + #installed { margin-top: 0; } #installed .entry, #installed .entry-col, #installed .entry-header { flex-wrap: wrap; } .header-name, .entry-name { flex: 1; } .entry-name-text { max-width: 10vw; } .entry-actions { white-space: normal; } .invisible { display: none; } } /* 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; } @media (max-width: 768px) { #installed .entry, #installed .entry-header { display: block; } .entry-col { width: 100%; padding: 0; margin-left: 4px; } .entry-name-text { max-width: unset; } .entry-col .col-label { display: inline-block; font-weight: bold; margin-right: 6px; padding: 0; } .center-text, .entry-filter, .entry-state, .entry-last-update { text-align: left; max-width: unset; } .targets { display: inline-block; } }