blur strength slider added

This commit is contained in:
RossAscends
2023-04-12 18:05:18 +09:00
parent 14aad34d11
commit 00dc7284cc
3 changed files with 70 additions and 30 deletions

View File

@ -1186,7 +1186,7 @@
Blur Strength Blur Strength
</div> </div>
<div class="range-block-range"> <div class="range-block-range">
<input type="range" id="blur_strength" name="blur_strength" min="0.8" max="1.2" step="0.05"> <input type="range" id="blur_strength" name="blur_strength" min="0" max="30" step="1">
</div> </div>
<div class="range-block-counter"> <div class="range-block-counter">
<span id="blur_strength_counter">WIP</span> <span id="blur_strength_counter">WIP</span>

View File

@ -44,6 +44,7 @@ let power_user = {
sort_field: 'name', sort_field: 'name',
sort_order: 'asc', sort_order: 'asc',
font_scale: 1, font_scale: 1,
blur_strength: 10,
main_text_color: `${getComputedStyle(document.documentElement).getPropertyValue('--SmartThemeBodyColor').trim()}`, main_text_color: `${getComputedStyle(document.documentElement).getPropertyValue('--SmartThemeBodyColor').trim()}`,
italics_text_color: `${getComputedStyle(document.documentElement).getPropertyValue('--SmartThemeEmColor').trim()}`, italics_text_color: `${getComputedStyle(document.documentElement).getPropertyValue('--SmartThemeEmColor').trim()}`,
@ -71,6 +72,7 @@ const storage_keys = {
italics_text_color: "TavernAI_italics_text_color", italics_text_color: "TavernAI_italics_text_color",
fastui_bg_color: "TavernAI_fastui_bg_color", fastui_bg_color: "TavernAI_fastui_bg_color",
blur_tint_color: "TavernAI_blur_tint_color", blur_tint_color: "TavernAI_blur_tint_color",
blur_strength: "TavernAI_blur_strength",
}; };
const chat = document.getElementById('chat'); const chat = document.getElementById('chat');
@ -162,6 +164,23 @@ async function applyThemeColor(type) {
chat.style.transition = chatTransition; chat.style.transition = chatTransition;
} }
async function applyBlurStrength() {
power_user.blur_strength = Number(localStorage.getItem(storage_keys.blur_strength) ?? 1);
// temporarily unset transition from chat to not make the browser calculate the animation
chat.style.transition = 'unset';
// now apply the blur strength to the document
document.documentElement.style.setProperty('--blurStrength', power_user.blur_strength);
$("#blur_strength_counter").text(power_user.blur_strength);
// a small delay to let the browser do the layout redraw
await delay(1);
// set transition back to chat
chat.style.transition = chatTransition;
}
async function applyFontScale() { async function applyFontScale() {
power_user.font_scale = Number(localStorage.getItem(storage_keys.font_scale) ?? 1); power_user.font_scale = Number(localStorage.getItem(storage_keys.font_scale) ?? 1);
@ -183,6 +202,7 @@ switchUiMode();
applyChatDisplay(); applyChatDisplay();
applySheldWidth(); applySheldWidth();
applyFontScale(); applyFontScale();
applyBlurStrength();
applyThemeColor(); applyThemeColor();
// TODO delete in next release // TODO delete in next release
@ -214,6 +234,7 @@ function loadPowerUserSettings(settings) {
power_user.chat_display = Number(localStorage.getItem(storage_keys.chat_display) ?? chat_styles.DEFAULT); power_user.chat_display = Number(localStorage.getItem(storage_keys.chat_display) ?? chat_styles.DEFAULT);
power_user.sheld_width = Number(localStorage.getItem(storage_keys.sheld_width) ?? sheld_width.DEFAULT); power_user.sheld_width = Number(localStorage.getItem(storage_keys.sheld_width) ?? sheld_width.DEFAULT);
power_user.font_scale = Number(localStorage.getItem(storage_keys.font_scale) ?? 1); power_user.font_scale = Number(localStorage.getItem(storage_keys.font_scale) ?? 1);
power_user.blur_strength = Number(localStorage.getItem(storage_keys.blur_strength) ?? 10);
$("#force-pygmalion-formatting-checkbox").prop("checked", power_user.force_pygmalion_formatting); $("#force-pygmalion-formatting-checkbox").prop("checked", power_user.force_pygmalion_formatting);
$("#collapse-newlines-checkbox").prop("checked", power_user.collapse_newlines); $("#collapse-newlines-checkbox").prop("checked", power_user.collapse_newlines);
@ -233,11 +254,15 @@ function loadPowerUserSettings(settings) {
$("#font_scale").val(power_user.font_scale); $("#font_scale").val(power_user.font_scale);
$("#font_scale_counter").html(power_user.font_scale); $("#font_scale_counter").html(power_user.font_scale);
$("#blur_strength").val(power_user.blur_strength);
$("#blur_strength_counter").html(power_user.blur_strength);
$("#main-text-color-picker").attr('color', power_user.main_text_color); $("#main-text-color-picker").attr('color', power_user.main_text_color);
$("#italics-color-picker").attr('color', power_user.italics_text_color); $("#italics-color-picker").attr('color', power_user.italics_text_color);
$("#fastui-bg-color-picker").attr('color', power_user.fastui_bg_color); $("#fastui-bg-color-picker").attr('color', power_user.fastui_bg_color);
$("#blur-tint-color-picker").attr('color', power_user.blur_tint_color); $("#blur-tint-color-picker").attr('color', power_user.blur_tint_color);
$(`#character_sort_order option[data-order="${power_user.sort_order}"][data-field="${power_user.sort_field}"]`).prop("selected", true); $(`#character_sort_order option[data-order="${power_user.sort_order}"][data-field="${power_user.sort_field}"]`).prop("selected", true);
sortCharactersList(); sortCharactersList();
} }
@ -339,6 +364,13 @@ $(document).ready(() => {
applyFontScale(); applyFontScale();
}); });
$(`input[name="blur_strength"]`).on('input', function (e) {
power_user.blur_strength = Number(e.target.value);
$("#blur_strength_counter").text(power_user.blur_strength);
localStorage.setItem(storage_keys.blur_strength, power_user.blur_strength);
applyBlurStrength();
});
$("#main-text-color-picker").on('change', (evt) => { $("#main-text-color-picker").on('change', (evt) => {
power_user.main_text_color = evt.detail.rgba; power_user.main_text_color = evt.detail.rgba;
applyThemeColor('main'); applyThemeColor('main');

View File

@ -41,12 +41,18 @@
--SmartThemeEmColor: rgb(175, 175, 175); --SmartThemeEmColor: rgb(175, 175, 175);
--SmartThemeFastUIBGColor: rgba(0, 0, 0, 0.9); --SmartThemeFastUIBGColor: rgba(0, 0, 0, 0.9);
--SmartThemeBlurTintColor: rgba(0, 0, 0, 0.5); --SmartThemeBlurTintColor: rgba(0, 0, 0, 0.5);
--SmartThemeBlurStrength: calc(var(--blurStrength) * 1px);
--sheldWidth: 800px; --sheldWidth: 800px;
/*base variable calculated in rems*/ /*base variable calculated in rems*/
--fontScale: 1; --fontScale: 1;
--mainFontSize: calc(var(--fontScale) * 1rem); --mainFontSize: calc(var(--fontScale) * 1rem);
/* base variable for blur strength slider calculations */
--blurStrength: 10;
/*styles for the color picker*/ /*styles for the color picker*/
--tool-cool-color-picker-btn-bg: transparent; --tool-cool-color-picker-btn-bg: transparent;
--tool-cool-color-picker-btn-border-color: transparent; --tool-cool-color-picker-btn-border-color: transparent;
@ -182,10 +188,10 @@ code {
color: var(--black30a); color: var(--black30a);
border-bottom: 1px solid var(--black70a); border-bottom: 1px solid var(--black70a);
box-shadow: 0 2px 20px 0 var(--black70a); box-shadow: 0 2px 20px 0 var(--black70a);
backdrop-filter: blur(10px); backdrop-filter: blur(var(--SmartThemeBlurStrength));
background-color: var(--SmartThemeBlurTintColor); background-color: var(--SmartThemeBlurTintColor);
/* border-radius: 0 0 20px 20px; */ /* border-radius: 0 0 20px 20px; */
-webkit-backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(var(--SmartThemeBlurStrength));
z-index: 3000; z-index: 3000;
} }
@ -214,9 +220,9 @@ code {
border-bottom: 1px solid var(--grey30a); border-bottom: 1px solid var(--grey30a);
border-left: 1px solid var(--grey30a); border-left: 1px solid var(--grey30a);
border-right: 1px solid var(--grey30a); border-right: 1px solid var(--grey30a);
backdrop-filter: blur(10px); backdrop-filter: blur(var(--SmartThemeBlurStrength));
background-color: var(--SmartThemeBlurTintColor); background-color: var(--SmartThemeBlurTintColor);
-webkit-backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(var(--SmartThemeBlurStrength));
text-shadow: #000 0 0 3px; text-shadow: #000 0 0 3px;
scrollbar-width: thin; scrollbar-width: thin;
transition: all 1s ease-in-out; transition: all 1s ease-in-out;
@ -241,7 +247,7 @@ code {
border-radius: 0 0 20px 20px; border-radius: 0 0 20px 20px;
background-color: var(--crimson70a); background-color: var(--crimson70a);
backdrop-filter: blur(10px); backdrop-filter: blur(var(--SmartThemeBlurStrength));
} }
#send_but_sheld { #send_but_sheld {
@ -1145,9 +1151,9 @@ input[type=search]:focus::-webkit-search-cancel-button {
margin-top: 36svh; margin-top: 36svh;
box-shadow: 0 0 2px var(--black50a); box-shadow: 0 0 2px var(--black50a);
padding: 4px; padding: 4px;
backdrop-filter: blur(10px); backdrop-filter: blur(var(--SmartThemeBlurStrength));
background-color: var(--black70a); background-color: var(--black70a);
-webkit-backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(var(--SmartThemeBlurStrength));
border-radius: 10px; border-radius: 10px;
} }
@ -1254,8 +1260,8 @@ input[type=search]:focus::-webkit-search-cancel-button {
} }
#shadow_popup { #shadow_popup {
backdrop-filter: blur(10px); backdrop-filter: blur(calc(var(--SmartThemeBlurStrength) * 2));
-webkit-backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(calc(var(--SmartThemeBlurStrength) * 2));
display: none; display: none;
opacity: 0.0; opacity: 0.0;
position: absolute; position: absolute;
@ -1267,8 +1273,8 @@ input[type=search]:focus::-webkit-search-cancel-button {
#colab_shadow_popup { #colab_shadow_popup {
backdrop-filter: blur(10px); backdrop-filter: blur(var(--SmartThemeBlurStrength));
-webkit-backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(var(--SmartThemeBlurStrength));
display: none; display: none;
opacity: 1.0; opacity: 1.0;
position: absolute; position: absolute;
@ -1377,8 +1383,8 @@ input[type=search]:focus::-webkit-search-cancel-button {
#world_popup { #world_popup {
display: none; display: none;
background-color: var(--black30a); background-color: var(--SmartThemeBlurTintColor);
backdrop-filter: blur(50px); backdrop-filter: blur(calc(var(--SmartThemeBlurStrength) * 2));
max-width: var(--sheldWidth); max-width: var(--sheldWidth);
height: calc(100% - 40px); height: calc(100% - 40px);
position: absolute; position: absolute;
@ -1803,9 +1809,9 @@ input[type="range"]::-webkit-slider-thumb {
margin-top: 15vh; margin-top: 15vh;
box-shadow: 5px 5px var(--black30a); box-shadow: 5px 5px var(--black30a);
padding: 4px; padding: 4px;
backdrop-filter: blur(10px); backdrop-filter: blur(var(--SmartThemeBlurStrength));
background-color: var(--black70a); background-color: var(--black70a);
-webkit-backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(var(--SmartThemeBlurStrength));
border-radius: 10px; border-radius: 10px;
padding-top: 30px; padding-top: 30px;
} }
@ -1913,9 +1919,9 @@ input[type="range"]::-webkit-slider-thumb {
} }
#shadow_character_popup { #shadow_character_popup {
backdrop-filter: blur(10px); backdrop-filter: blur(var(--SmartThemeBlurStrength));
background-color: var(--black70a); background-color: var(--black70a);
-webkit-backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(var(--SmartThemeBlurStrength));
display: none; display: none;
opacity: 1.0; opacity: 1.0;
position: absolute; position: absolute;
@ -1927,8 +1933,8 @@ input[type="range"]::-webkit-slider-thumb {
#character_popup { #character_popup {
display: none; display: none;
background-color: var(--black30a); background-color: var(--black30a);
backdrop-filter: blur(50px); backdrop-filter: blur(var(--SmartThemeBlurStrength));
-webkit-backdrop-filter: blur(30px); -webkit-backdrop-filter: blur(var(--SmartThemeBlurStrength));
grid-template-rows: 50px 1fr 1fr 1fr 5fr; grid-template-rows: 50px 1fr 1fr 1fr 5fr;
grid-gap: 10px; grid-gap: 10px;
max-width: var(--sheldWidth); max-width: var(--sheldWidth);
@ -2007,9 +2013,9 @@ h5 {
height: 40px; height: 40px;
margin-top: 15px; margin-top: 15px;
margin-left: 36px; margin-left: 36px;
backdrop-filter: blur(10px); backdrop-filter: blur(var(--SmartThemeBlurStrength));
background-color: var(--black70a); background-color: var(--black70a);
-webkit-backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(var(--SmartThemeBlurStrength));
width: 110px; width: 110px;
text-align: center; text-align: center;
} }
@ -2022,8 +2028,8 @@ h5 {
height: 100svh; height: 100svh;
z-index: 3001; z-index: 3001;
top: 0; top: 0;
backdrop-filter: blur(10px); backdrop-filter: blur(var(--SmartThemeBlurStrength));
-webkit-backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(var(--SmartThemeBlurStrength));
} }
#select_chat_popup { #select_chat_popup {
@ -2692,9 +2698,9 @@ a {
left: auto; left: auto;
padding: 0; padding: 0;
margin-bottom: 5px; margin-bottom: 5px;
backdrop-filter: blur(10px); backdrop-filter: blur(calc(var(--SmartThemeBlurStrength)));
background-color: var(--SmartThemeBlurTintColor); background-color: var(--SmartThemeBlurTintColor);
-webkit-backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(calc(var(--SmartThemeBlurStrength)));
z-index: 3000; z-index: 3000;
border: 0; border: 0;
border-left: 1px solid var(--grey30a); border-left: 1px solid var(--grey30a);
@ -2895,7 +2901,8 @@ label[for="extensions_autoconnect"] {
.drawer-icon.openIcon { .drawer-icon.openIcon {
/* background-image: url('img/circle-chevron-up-solid.svg'); */ /* background-image: url('img/circle-chevron-up-solid.svg'); */
filter: invert(1) brightness(200%); filter: invert(1) brightness(200%) drop-shadow(0px 0px 2px black);
;
transition: all 0.275s; transition: all 0.275s;
} }
@ -2905,7 +2912,8 @@ label[for="extensions_autoconnect"] {
.drawer-icon.closedIcon { .drawer-icon.closedIcon {
/* background-image: url('img/circle-chevron-down-solid.svg'); */ /* background-image: url('img/circle-chevron-down-solid.svg'); */
filter: invert(1); filter: invert(1) drop-shadow(0px 0px 2px black);
;
opacity: 0.3; opacity: 0.3;
transition: all 0.275s; transition: all 0.275s;
} }
@ -2965,8 +2973,8 @@ label[for="extensions_autoconnect"] {
width: min-content; width: min-content;
max-width: var(--sheldWidth); max-width: var(--sheldWidth);
margin: 35px auto 0 auto; margin: 35px auto 0 auto;
backdrop-filter: blur(20px); backdrop-filter: blur(calc(var(--SmartThemeBlurStrength)));
-webkit-backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(calc(var(--SmartThemeBlurStrength)));
} }
.fillRight, .fillRight,