diff --git a/_locales/en/messages.json b/_locales/en/messages.json
index aafce1cc..6cf4498f 100644
--- a/_locales/en/messages.json
+++ b/_locales/en/messages.json
@@ -513,6 +513,18 @@
"message": "Update style",
"description": "Label for update button"
},
+ "installPreferSchemeLabel": {
+ "message": "The style should be applied:"
+ },
+ "installPreferSchemeNone": {
+ "message": "Always"
+ },
+ "installPreferSchemeDark": {
+ "message": "In Dark Mode"
+ },
+ "installPreferSchemeLight": {
+ "message": "In Light Mode"
+ },
"installUpdate": {
"message": "Install update",
"description": "Label for the button to install an update for a single style"
diff --git a/install-usercss.html b/install-usercss.html
index c6a00b2c..6920bcce 100644
--- a/install-usercss.html
+++ b/install-usercss.html
@@ -72,6 +72,14 @@
+
diff --git a/install-usercss/install-usercss.css b/install-usercss/install-usercss.css
index a86ef582..052b5e7d 100644
--- a/install-usercss/install-usercss.css
+++ b/install-usercss/install-usercss.css
@@ -261,7 +261,6 @@ h2.installed.active {
.set-update-url {
flex-wrap: wrap;
}
-
.set-update-url p {
word-break: break-all;
opacity: .5;
@@ -269,6 +268,10 @@ h2.installed.active {
margin: .25em 0 .25em;
}
+label.set-prefer-scheme:not(.unavailable) {
+ padding-left: 0;
+}
+
.external {
text-align: center;
}
@@ -317,6 +320,7 @@ li {
user-select: auto;
}
+/* FIXME: why do we want to give all labels a padding? */
label:not(.unavailable) {
padding-left: 16px;
position: relative;
diff --git a/install-usercss/install-usercss.js b/install-usercss/install-usercss.js
index afbd6419..51b0769a 100644
--- a/install-usercss/install-usercss.js
+++ b/install-usercss/install-usercss.js
@@ -116,6 +116,11 @@
versionTest > 0 ? 'update' :
'reinstall');
$('.set-update-url').title = dup && dup.updateUrl && t('installUpdateFrom', dup.updateUrl) || '';
+
+ $('.set-prefer-scheme select').value =
+ style.preferScheme === 'dark' ? 'dark' :
+ style.preferScheme === 'light' ? 'light' : 'none';
+
$('.meta-name').textContent = data.name;
$('.meta-version').textContent = data.version;
$('.meta-description').textContent = data.description;
@@ -329,6 +334,12 @@
$('.set-update-url p').textContent = updateUrl.href.length < 300 ? updateUrl.href :
updateUrl.href.slice(0, 300) + '...';
+ const preferScheme = $('.set-prefer-scheme select');
+ preferScheme.onchange = () => {
+ style.preferScheme = preferScheme.value;
+ };
+ preferScheme.onchange();
+
if (!port) {
return;
}