1 parent
0421994fe6
commit
425ea7449b
138 files changed
+5705
-1012
No files matched your search
@@ -981,4 +981,117 @@ html[data-interface-skin="nord"] .button.primary {
|
||||
background: var(--accent);
|
||||
border-color: var(--accent);
|
||||
color: var(--accent-ink);
|
||||
}
|
||||
}
|
||||
|
||||
/* 0.0.7: additional website-inspired interface palettes. */
|
||||
html[data-interface-skin="github"],
|
||||
html[data-interface-skin="gitlab"],
|
||||
html[data-interface-skin="discord"],
|
||||
html[data-interface-skin="slack"],
|
||||
html[data-interface-skin="reddit"],
|
||||
html[data-interface-skin="notion"] {
|
||||
--font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
||||
}
|
||||
|
||||
html[data-interface-skin="github"][data-theme="light"] {
|
||||
color-scheme: light;
|
||||
--bg: #f6f8fa; --panel: #ffffff; --panel-2: #f6f8fa; --panel-3: #eaeef2; --sidebar: #f6f8fa;
|
||||
--line: #d8dee4; --line-strong: #afb8c1; --text: #1f2328; --muted: #656d76; --subtle: #818b98;
|
||||
--accent: #0969da; --accent-strong: #0550ae; --accent-ink: #ffffff; --danger: #cf222e; --warning: #9a6700; --success: #1a7f37;
|
||||
--field: #ffffff; --selected: #ddf4ff; --hover: #eef4f8; --shadow: rgba(31, 35, 40, .15);
|
||||
--folder-bg: #f6f8fa; --message-bg: #ffffff; --reader-bg: #ffffff;
|
||||
}
|
||||
html[data-interface-skin="github"][data-theme="dark"] {
|
||||
color-scheme: dark;
|
||||
--bg: #0d1117; --panel: #161b22; --panel-2: #21262d; --panel-3: #2d333b; --sidebar: #0d1117;
|
||||
--line: #30363d; --line-strong: #484f58; --text: #f0f6fc; --muted: #8b949e; --subtle: #6e7681;
|
||||
--accent: #58a6ff; --accent-strong: #79c0ff; --accent-ink: #0d1117; --danger: #f85149; --warning: #d29922; --success: #3fb950;
|
||||
--field: #0d1117; --selected: #1f3d5c; --hover: #1c2128; --shadow: rgba(0, 0, 0, .45);
|
||||
--folder-bg: #0d1117; --message-bg: #161b22; --reader-bg: #161b22;
|
||||
}
|
||||
|
||||
html[data-interface-skin="gitlab"][data-theme="light"] {
|
||||
color-scheme: light;
|
||||
--bg: #f7f7fb; --panel: #ffffff; --panel-2: #faf9ff; --panel-3: #f0edf8; --sidebar: #f4f1fa;
|
||||
--line: #ddd8e8; --line-strong: #bbb2cb; --text: #171321; --muted: #626168; --subtle: #85818c;
|
||||
--accent: #7759c2; --accent-strong: #5943a6; --accent-ink: #ffffff; --danger: #c0341d; --warning: #b14f18; --success: #108548;
|
||||
--field: #ffffff; --selected: #eee7ff; --hover: #f5f1ff; --shadow: rgba(55, 35, 95, .14);
|
||||
--folder-bg: #f4f1fa; --message-bg: #ffffff; --reader-bg: #ffffff;
|
||||
}
|
||||
html[data-interface-skin="gitlab"][data-theme="dark"] {
|
||||
color-scheme: dark;
|
||||
--bg: #171321; --panel: #211b2f; --panel-2: #2b243a; --panel-3: #362e47; --sidebar: #1b1627;
|
||||
--line: #40364f; --line-strong: #625773; --text: #f4f0ff; --muted: #bbb2c9; --subtle: #91869f;
|
||||
--accent: #a989f5; --accent-strong: #c0a7ff; --accent-ink: #1c132d; --danger: #ff8a74; --warning: #fc8d43; --success: #67c98f;
|
||||
--field: #1b1627; --selected: #49386a; --hover: #2c243b; --shadow: rgba(0, 0, 0, .42);
|
||||
--folder-bg: #1b1627; --message-bg: #211b2f; --reader-bg: #211b2f;
|
||||
}
|
||||
|
||||
html[data-interface-skin="discord"][data-theme="light"] {
|
||||
color-scheme: light;
|
||||
--bg: #f2f3f5; --panel: #ffffff; --panel-2: #f8f8f9; --panel-3: #e9eaed; --sidebar: #ebedef;
|
||||
--line: #d5d7da; --line-strong: #b5bac1; --text: #313338; --muted: #5c5e66; --subtle: #80848e;
|
||||
--accent: #5865f2; --accent-strong: #4752c4; --accent-ink: #ffffff; --danger: #da373c; --warning: #a66a00; --success: #248046;
|
||||
--field: #ffffff; --selected: #e0e3ff; --hover: #eceef2; --shadow: rgba(30, 31, 34, .14);
|
||||
--folder-bg: #ebedef; --message-bg: #ffffff; --reader-bg: #ffffff;
|
||||
}
|
||||
html[data-interface-skin="discord"][data-theme="dark"] {
|
||||
color-scheme: dark;
|
||||
--bg: #1e1f22; --panel: #313338; --panel-2: #2b2d31; --panel-3: #383a40; --sidebar: #2b2d31;
|
||||
--line: #3f4147; --line-strong: #5d6068; --text: #f2f3f5; --muted: #b5bac1; --subtle: #949ba4;
|
||||
--accent: #5865f2; --accent-strong: #7983f5; --accent-ink: #ffffff; --danger: #f23f42; --warning: #f0b232; --success: #23a559;
|
||||
--field: #1e1f22; --selected: #41456c; --hover: #35373c; --shadow: rgba(0, 0, 0, .44);
|
||||
--folder-bg: #2b2d31; --message-bg: #313338; --reader-bg: #313338;
|
||||
}
|
||||
|
||||
html[data-interface-skin="slack"][data-theme="light"] {
|
||||
color-scheme: light;
|
||||
--bg: #f8f8f8; --panel: #ffffff; --panel-2: #faf7fb; --panel-3: #f0e8f1; --sidebar: #f3e9f4;
|
||||
--line: #ddd5df; --line-strong: #b9acbc; --text: #1d1c1d; --muted: #616061; --subtle: #868286;
|
||||
--accent: #611f69; --accent-strong: #4a154b; --accent-ink: #ffffff; --danger: #e01e5a; --warning: #b56b00; --success: #007a5a;
|
||||
--field: #ffffff; --selected: #f3e6f5; --hover: #f8f0f8; --shadow: rgba(74, 21, 75, .14);
|
||||
--folder-bg: #f3e9f4; --message-bg: #ffffff; --reader-bg: #ffffff;
|
||||
}
|
||||
html[data-interface-skin="slack"][data-theme="dark"] {
|
||||
color-scheme: dark;
|
||||
--bg: #1a111b; --panel: #241725; --panel-2: #2d1c2f; --panel-3: #38233a; --sidebar: #211322;
|
||||
--line: #49304b; --line-strong: #6c4e70; --text: #f8f3f8; --muted: #c9bccb; --subtle: #a08ca4;
|
||||
--accent: #d786d9; --accent-strong: #e8a4e9; --accent-ink: #281129; --danger: #ff719e; --warning: #ecb22e; --success: #2eb67d;
|
||||
--field: #211322; --selected: #553459; --hover: #302033; --shadow: rgba(0, 0, 0, .42);
|
||||
--folder-bg: #211322; --message-bg: #241725; --reader-bg: #241725;
|
||||
}
|
||||
|
||||
html[data-interface-skin="reddit"][data-theme="light"] {
|
||||
color-scheme: light;
|
||||
--bg: #f6f7f8; --panel: #ffffff; --panel-2: #f8f9fa; --panel-3: #edeff1; --sidebar: #f2f4f5;
|
||||
--line: #d7d9dc; --line-strong: #b8bdc2; --text: #1a1a1b; --muted: #6a6a6b; --subtle: #878a8c;
|
||||
--accent: #ff4500; --accent-strong: #d93a00; --accent-ink: #ffffff; --danger: #d63c3c; --warning: #a96800; --success: #2e7d32;
|
||||
--field: #ffffff; --selected: #fff0e8; --hover: #f7eee9; --shadow: rgba(26, 26, 27, .14);
|
||||
--folder-bg: #f2f4f5; --message-bg: #ffffff; --reader-bg: #ffffff;
|
||||
}
|
||||
html[data-interface-skin="reddit"][data-theme="dark"] {
|
||||
color-scheme: dark;
|
||||
--bg: #030303; --panel: #1a1a1b; --panel-2: #222223; --panel-3: #2d2d2e; --sidebar: #121213;
|
||||
--line: #343536; --line-strong: #565758; --text: #d7dadc; --muted: #a8aaab; --subtle: #818384;
|
||||
--accent: #ff4500; --accent-strong: #ff6a33; --accent-ink: #ffffff; --danger: #ff6b6b; --warning: #e6b450; --success: #55bd75;
|
||||
--field: #121213; --selected: #4b281c; --hover: #242425; --shadow: rgba(0, 0, 0, .5);
|
||||
--folder-bg: #121213; --message-bg: #1a1a1b; --reader-bg: #1a1a1b;
|
||||
}
|
||||
|
||||
html[data-interface-skin="notion"][data-theme="light"] {
|
||||
color-scheme: light;
|
||||
--bg: #fbfbfa; --panel: #ffffff; --panel-2: #f7f7f5; --panel-3: #eeeeec; --sidebar: #f7f6f3;
|
||||
--line: #e6e5e2; --line-strong: #cbc9c4; --text: #37352f; --muted: #787774; --subtle: #9b9a97;
|
||||
--accent: #37352f; --accent-strong: #1f1e1b; --accent-ink: #ffffff; --danger: #e03e3e; --warning: #9a6b25; --success: #448361;
|
||||
--field: #ffffff; --selected: #efefef; --hover: #f1f1ef; --shadow: rgba(15, 15, 15, .10);
|
||||
--folder-bg: #f7f6f3; --message-bg: #ffffff; --reader-bg: #ffffff;
|
||||
}
|
||||
html[data-interface-skin="notion"][data-theme="dark"] {
|
||||
color-scheme: dark;
|
||||
--bg: #191919; --panel: #202020; --panel-2: #262626; --panel-3: #303030; --sidebar: #202020;
|
||||
--line: #353535; --line-strong: #505050; --text: #ebebea; --muted: #b4b4b2; --subtle: #8b8b89;
|
||||
--accent: #e3e3e2; --accent-strong: #ffffff; --accent-ink: #202020; --danger: #ff7369; --warning: #cfa95f; --success: #6baa85;
|
||||
--field: #191919; --selected: #353535; --hover: #2b2b2b; --shadow: rgba(0, 0, 0, .38);
|
||||
--folder-bg: #202020; --message-bg: #202020; --reader-bg: #202020;
|
||||
}
|
||||
|
||||
@@ -623,7 +623,13 @@
|
||||
"Estimated final message size": "Szacowany końcowy rozmiar wiadomości",
|
||||
"Estimated size. The exact RFC822/MIME size is checked by the server before SMTP delivery.": "Rozmiar szacowany. Dokładny rozmiar RFC822/MIME jest sprawdzany przez serwer przed wysłaniem przez SMTP.",
|
||||
"Estimated message size exceeds the configured limit": "Szacowany rozmiar wiadomości przekracza skonfigurowany limit",
|
||||
"The exact size will be checked before sending.": "Dokładny rozmiar zostanie sprawdzony przed wysłaniem."
|
||||
"The exact size will be checked before sending.": "Dokładny rozmiar zostanie sprawdzony przed wysłaniem.",
|
||||
"GitHub inspired": "Inspirowany GitHub",
|
||||
"GitLab inspired": "Inspirowany GitLab",
|
||||
"Discord inspired": "Inspirowany Discord",
|
||||
"Slack inspired": "Inspirowany Slack",
|
||||
"Reddit inspired": "Inspirowany Reddit",
|
||||
"Notion inspired": "Inspirowany Notion"
|
||||
},
|
||||
"fixed_interface_style_note": "stały styl interfejsu. Motyw nadal przełącza jasny/ciemny; wybierz RustBox (niestandardowy), aby edytować kolory, odstępy i geometrię.",
|
||||
"custom_interface_style_note": "RustBox można w pełni dostosować: kolory, odstępy, panele, typografię i zaawansowane ustawienia interfejsu.",
|
||||
|
||||
@@ -606,6 +606,12 @@
|
||||
<option value="yahoo">Yahoo Mail inspired</option>
|
||||
<option value="hey">HEY inspired</option>
|
||||
<option value="nord">Nord</option>
|
||||
<option value="github">GitHub inspired</option>
|
||||
<option value="gitlab">GitLab inspired</option>
|
||||
<option value="discord">Discord inspired</option>
|
||||
<option value="slack">Slack inspired</option>
|
||||
<option value="reddit">Reddit inspired</option>
|
||||
<option value="notion">Notion inspired</option>
|
||||
</select><small id="pref-interface-skin-note" class="muted">RustBox is fully customizable: colors,
|
||||
spacing, panes and typography.</small></label>
|
||||
<label id="pref-preset-scale-unlocked-row" class="checkbox-row hidden"><input
|
||||
|
||||
@@ -82,6 +82,30 @@ const interfaceStyleProfiles = {
|
||||
label: "High contrast",
|
||||
preferences: { density: "comfortable", preview: "right", scale: "normal", fontFamily: "system", fontSize: 14, rowHeight: 60, folderPaneWidth: 240, messagePaneWidth: 440, borderRadius: 2, contrast: "high", iconSize: 20, toolbarDensity: "normal", sidebarItemHeight: 34, readerMaxWidth: 980, composerWidth: 960, selectionColor: "#ffe500", unreadFontWeight: 800, unreadBadgeStyle: "solid", compactHeaders: false, showBorders: true, scrollbarDensity: "normal", monochrome: false },
|
||||
},
|
||||
github: {
|
||||
label: "GitHub inspired",
|
||||
preferences: { density: "compact", preview: "right", scale: "normal", fontFamily: "system", fontSize: 13, rowHeight: 52, folderPaneWidth: 236, messagePaneWidth: 430, borderRadius: 6, contrast: "normal", iconSize: 18, toolbarDensity: "normal", sidebarItemHeight: 30, readerMaxWidth: 980, composerWidth: 940, selectionColor: "#ddf4ff", unreadFontWeight: 720, unreadBadgeStyle: "dot", compactHeaders: false, showBorders: true, scrollbarDensity: "thin", monochrome: false },
|
||||
},
|
||||
gitlab: {
|
||||
label: "GitLab inspired",
|
||||
preferences: { density: "compact", preview: "right", scale: "normal", fontFamily: "system", fontSize: 13, rowHeight: 52, folderPaneWidth: 238, messagePaneWidth: 430, borderRadius: 7, contrast: "normal", iconSize: 18, toolbarDensity: "normal", sidebarItemHeight: 30, readerMaxWidth: 980, composerWidth: 940, selectionColor: "#eee7ff", unreadFontWeight: 720, unreadBadgeStyle: "dot", compactHeaders: false, showBorders: true, scrollbarDensity: "thin", monochrome: false },
|
||||
},
|
||||
discord: {
|
||||
label: "Discord inspired",
|
||||
preferences: { density: "comfortable", preview: "right", scale: "normal", fontFamily: "system", fontSize: 13, rowHeight: 56, folderPaneWidth: 246, messagePaneWidth: 440, borderRadius: 8, contrast: "normal", iconSize: 19, toolbarDensity: "normal", sidebarItemHeight: 34, readerMaxWidth: 980, composerWidth: 950, selectionColor: "#e0e3ff", unreadFontWeight: 720, unreadBadgeStyle: "solid", compactHeaders: false, showBorders: false, scrollbarDensity: "thin", monochrome: false },
|
||||
},
|
||||
slack: {
|
||||
label: "Slack inspired",
|
||||
preferences: { density: "comfortable", preview: "right", scale: "normal", fontFamily: "system", fontSize: 13, rowHeight: 56, folderPaneWidth: 244, messagePaneWidth: 435, borderRadius: 8, contrast: "normal", iconSize: 18, toolbarDensity: "normal", sidebarItemHeight: 33, readerMaxWidth: 960, composerWidth: 950, selectionColor: "#f3e6f5", unreadFontWeight: 720, unreadBadgeStyle: "dot", compactHeaders: false, showBorders: false, scrollbarDensity: "thin", monochrome: false },
|
||||
},
|
||||
reddit: {
|
||||
label: "Reddit inspired",
|
||||
preferences: { density: "compact", preview: "right", scale: "normal", fontFamily: "system", fontSize: 13, rowHeight: 52, folderPaneWidth: 236, messagePaneWidth: 430, borderRadius: 9, contrast: "normal", iconSize: 18, toolbarDensity: "normal", sidebarItemHeight: 31, readerMaxWidth: 980, composerWidth: 940, selectionColor: "#fff0e8", unreadFontWeight: 720, unreadBadgeStyle: "solid", compactHeaders: false, showBorders: true, scrollbarDensity: "thin", monochrome: false },
|
||||
},
|
||||
notion: {
|
||||
label: "Notion inspired",
|
||||
preferences: { density: "comfortable", preview: "right", scale: "normal", fontFamily: "system", fontSize: 14, rowHeight: 58, folderPaneWidth: 238, messagePaneWidth: 430, borderRadius: 5, contrast: "soft", iconSize: 18, toolbarDensity: "normal", sidebarItemHeight: 32, readerMaxWidth: 900, composerWidth: 920, selectionColor: "#efefef", unreadFontWeight: 700, unreadBadgeStyle: "outline", compactHeaders: false, showBorders: false, scrollbarDensity: "thin", monochrome: false },
|
||||
},
|
||||
};
|
||||
|
||||
function resolvedInterfaceSkin(prefs = state.prefs) {
|
||||
|
||||
@@ -562,7 +562,7 @@ function renderMessageBody(detail, forceRemote = false) {
|
||||
if (hasRemote && !allowRemote && (policy === "ask" || policy === "contacts")) remoteBar.classList.remove("hidden");
|
||||
|
||||
const iframe = document.createElement("iframe");
|
||||
iframe.setAttribute("sandbox", "allow-popups allow-popups-to-escape-sandbox");
|
||||
iframe.setAttribute("sandbox", "allow-popups allow-popups-to-escape-sandbox allow-downloads");
|
||||
iframe.setAttribute("referrerpolicy", "no-referrer");
|
||||
const imageSources = allowRemote ? "data: cid: https: http:" : "data: cid:";
|
||||
const csp = `<meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src ${imageSources}; style-src 'unsafe-inline'; font-src data:">`;
|
||||
|
||||
Reference in new issue
Block a user