Move persona buttons to right panel - Move all buttons from the persona list to the right panel, to the already existing ones - Common CSS class/style for '.buttons_block' - Common CSS style for a red button - Refactored a few persona buttons' functionalities
| @@ -4957,14 +4957,16 @@ | |||
| 4957 | <div class="persona_management_current_persona"> | 4957 | <div class="persona_management_current_persona"> |
| 4958 | <h4 class="standoutHeader" data-i18n="Current Persona">Current Persona</h4> | 4958 | <h4 class="standoutHeader" data-i18n="Current Persona">Current Persona</h4> |
| 4959 | 4959 | ||
| 4960 | <h4 data-i18n="Name">Name</h4> | 4960 | <div id="persona_controls" class="flex-container"> |
| 4961 | <div class="change_name"> | 4961 | <h5 id="your_name" class="persona_name">[Persona Name]</h5> |
| 4962 | <input id="your_name" name="your_name" data-i18n="[placeholder]Enter your name" placeholder="Enter your name" class="text_pole wide100p" value="" autocomplete="off"> | 4962 | <div class="persona_controls_buttons_block buttons_block"> |
| 4963 | <div id="your_name_button" class="menu_button fa-solid fa-check" title="Click to set a new User Name" data-i18n="[title]Click to set a new User Name"> | 4963 | <div id="persona_rename_button" class="menu_button fa-solid fa-pencil" title="Rename Persona / Bind Name To Avatar" data-i18n="[title]Rename Persona / Bind Name To Avatar"></div> |
| 4964 | </div> | 4964 | <div id="sync_name_button" class="menu_button fa-solid fa-sync" title="Click to set user name for all messages" data-i18n="[title]Click to set user name for all messages"></div> |
| 4965 | <div id="sync_name_button" class="menu_button fa-solid fa-sync" title="Click to set user name for all messages" data-i18n="[title]Click to set user name for all messages"> | 4965 | <div id="persona_lore_button" class="menu_button fa-solid fa-globe" title="Persona Lore Alt+Click to open the lorebook" data-i18n="[title]Persona Lore Alt+Click to open the lorebook"></div> |
| 4966 | </div> | 4966 | |
| 4967 | <div id="persona_lore_button" class="menu_button fa-solid fa-globe" title="Persona Lore Alt+Click to open the lorebook" data-i18n="[title]Persona Lore Alt+Click to open the lorebook"> | 4967 | <div id="persona_set_image_button" class="menu_button fa-solid fa-image" title="Change Persona Image" data-i18n="[title]Change Persona Image"></div> |
| 4968 | <div id="persona_duplicate_button" class="menu_button fa-solid fa-clone" title="Duplicate Persona" data-i18n="[title]Duplicate Persona"></div> | ||
| 4969 | <div id="persona_delete_button" class="menu_button fa-solid fa-skull red_button" title="Delete Persona" data-i18n="[title]Delete Persona"></div> | ||
| 4968 | </div> | 4970 | </div> |
| 4969 | </div> | 4971 | </div> |
| 4970 | 4972 | ||
| @@ -5109,13 +5111,13 @@ | |||
| 5109 | </div> | 5111 | </div> |
| 5110 | </div> | 5112 | </div> |
| 5111 | <div class="flex-container flexFlowColumn expander flexNoGap"> | 5113 | <div class="flex-container flexFlowColumn expander flexNoGap"> |
| 5112 | <div id="avatar_div" class="avatar_div alignitemsflexstart justifySpaceBetween flexnowrap"> | 5114 | <div id="avatar_div" class="avatar_div buttons_block alignitemsflexstart justifySpaceBetween flexnowrap"> |
| 5113 | <label id="avatar_div_div" class="add_avatar avatar" for="add_avatar_button" title="Click to select a new avatar for this character" data-i18n="[title]Click to select a new avatar for this character"> | 5115 | <label id="avatar_div_div" class="add_avatar avatar" for="add_avatar_button" title="Click to select a new avatar for this character" data-i18n="[title]Click to select a new avatar for this character"> |
| 5114 | <img id="avatar_load_preview" src="img/ai4.png" alt="avatar"> | 5116 | <img id="avatar_load_preview" src="img/ai4.png" alt="avatar"> |
| 5115 | <input hidden type="file" id="add_avatar_button" name="avatar" accept="image/*"> | 5117 | <input hidden type="file" id="add_avatar_button" name="avatar" accept="image/*"> |
| 5116 | </label> | 5118 | </label> |
| 5117 | <div class="flex-container" id="avatar_controls"> | 5119 | <div class="flex-container" id="avatar_controls"> |
| 5118 | <div class="form_create_bottom_buttons_block"> | 5120 | <div class="form_create_bottom_buttons_block buttons_block"> |
| 5119 | <div id="rm_button_back" class="menu_button fa-solid fa-left-long "></div> | 5121 | <div id="rm_button_back" class="menu_button fa-solid fa-left-long "></div> |
| 5120 | <!-- <div id="renameCharButton" class="menu_button fa-solid fa-user-pen" title="Rename Character"></div> --> | 5122 | <!-- <div id="renameCharButton" class="menu_button fa-solid fa-user-pen" title="Rename Character"></div> --> |
| 5121 | <div id="favorite_button" class="menu_button fa-solid fa-star" title="Add to Favorites" data-i18n="[title]Add to Favorites"></div> | 5123 | <div id="favorite_button" class="menu_button fa-solid fa-star" title="Add to Favorites" data-i18n="[title]Add to Favorites"></div> |
| @@ -5131,7 +5133,7 @@ | |||
| 5131 | <label for="create_button" id="create_button_label" class="menu_button fa-solid fa-user-check" title="Create Character" data-i18n="[title]Create Character"> | 5133 | <label for="create_button" id="create_button_label" class="menu_button fa-solid fa-user-check" title="Create Character" data-i18n="[title]Create Character"> |
| 5132 | <input type="submit" id="create_button" name="create_button"> | 5134 | <input type="submit" id="create_button" name="create_button"> |
| 5133 | </label> | 5135 | </label> |
| 5134 | <div id="delete_button" class="menu_button fa-solid fa-skull " title="Delete Character" data-i18n="[title]Delete Character"></div> | 5136 | <div id="delete_button" class="menu_button fa-solid fa-skull red_button" title="Delete Character" data-i18n="[title]Delete Character"></div> |
| 5135 | </div> | 5137 | </div> |
| 5136 | <label class="flex1 height100p" for="char-management-dropdown"> | 5138 | <label class="flex1 height100p" for="char-management-dropdown"> |
| 5137 | <select id="char-management-dropdown" class="text_pole"> | 5139 | <select id="char-management-dropdown" class="text_pole"> |
| @@ -5469,23 +5471,23 @@ | |||
| 5469 | <div class="wide100p character_name_block"> | 5471 | <div class="wide100p character_name_block"> |
| 5470 | <span class="ch_name flex1"></span> | 5472 | <span class="ch_name flex1"></span> |
| 5471 | <div class="avatar-buttons"> | 5473 | <div class="avatar-buttons"> |
| 5472 | <button class="menu_button bind_user_name" title="Bind user name to that avatar" data-i18n="[title]Bind user name to that avatar"> | 5474 | <!-- <button class="menu_button bind_user_name" title="Bind user name to that avatar" data-i18n="[title]Bind user name to that avatar"> |
| 5473 | <i class="fa-fw fa-solid fa-user-edit fa-sm"></i> | 5475 | <i class="fa-fw fa-solid fa-user-edit fa-sm"></i> |
| 5474 | </button> | 5476 | </button> |
| 5475 | <button class="menu_button set_persona_image" title="Change persona image" data-i18n="[title]Change persona image"> | 5477 | <button class="menu_button set_persona_image" title="Change persona image" data-i18n="[title]Change persona image"> |
| 5476 | <i class="fa-fw fa-solid fa-image fa-sm"></i> | 5478 | <i class="fa-fw fa-solid fa-image fa-sm"></i> |
| 5477 | </button> | 5479 | </button> |
| 5478 | <!-- | 5480 | |
| 5479 | <button class="menu_button set_default_persona" title="Select this as default persona for the new chats." data-i18n="[title]Select this as default persona for the new chats."> | 5481 | <button class="menu_button set_default_persona" title="Select this as default persona for the new chats." data-i18n="[title]Select this as default persona for the new chats."> |
| 5480 | <i class="fa-fw fa-solid fa-crown fa-sm"></i> | 5482 | <i class="fa-fw fa-solid fa-crown fa-sm"></i> |
| 5481 | </button> | 5483 | </button> |
| 5482 | --> | 5484 | |
| 5483 | <button class="menu_button duplicate_persona" title="Duplicate persona" data-i18n="[title]Duplicate persona"> | 5485 | <button class="menu_button duplicate_persona" title="Duplicate persona" data-i18n="[title]Duplicate persona"> |
| 5484 | <i class="fa-fw fa-solid fa-clone fa-sm"></i> | 5486 | <i class="fa-fw fa-solid fa-clone fa-sm"></i> |
| 5485 | </button> | 5487 | </button> |
| 5486 | <button class="menu_button delete_avatar" title="Delete persona" data-i18n="[title]Delete persona"> | 5488 | <button class="menu_button delete_avatar" title="Delete persona" data-i18n="[title]Delete persona"> |
| 5487 | <i class="fa-fw fa-solid fa-trash-alt fa-sm"></i> | 5489 | <i class="fa-fw fa-solid fa-trash-alt fa-sm"></i> |
| 5488 | </button> | 5490 | </button> --> |
| 5489 | </div> | 5491 | </div> |
| 5490 | </div> | 5492 | </div> |
| 5491 | <div class="ch_description"></div> | 5493 | <div class="ch_description"></div> |
| @@ -6810,7 +6810,7 @@ export function setUserName(value, { toastPersonaNameChange = true } = {}) { | |||
| 6810 | if (name1 === undefined || name1 == '') | 6810 | if (name1 === undefined || name1 == '') |
| 6811 | name1 = default_user_name; | 6811 | name1 = default_user_name; |
| 6812 | console.log(`User name changed to ${name1}`); | 6812 | console.log(`User name changed to ${name1}`); |
| 6813 | $('#your_name').val(name1); | 6813 | $('#your_name').text(name1); |
| 6814 | if (toastPersonaNameChange && power_user.persona_show_notifications) { | 6814 | if (toastPersonaNameChange && power_user.persona_show_notifications) { |
| 6815 | toastr.success(t`Your messages will now be sent as ${name1}`, t`Persona Changed`); | 6815 | toastr.success(t`Your messages will now be sent as ${name1}`, t`Persona Changed`); |
| 6816 | } | 6816 | } |
| @@ -6864,7 +6864,7 @@ export async function getSettings() { | |||
| 6864 | settings = JSON.parse(data.settings); | 6864 | settings = JSON.parse(data.settings); |
| 6865 | if (settings.username !== undefined && settings.username !== '') { | 6865 | if (settings.username !== undefined && settings.username !== '') { |
| 6866 | name1 = settings.username; | 6866 | name1 = settings.username; |
| 6867 | $('#your_name').val(name1); | 6867 | $('#your_name').text(name1); |
| 6868 | } | 6868 | } |
| 6869 | 6869 | ||
| 6870 | await setUserControls(data.enable_accounts); | 6870 | await setUserControls(data.enable_accounts); |
| @@ -466,6 +466,8 @@ const countPersonaDescriptionTokens = debounce(async () => { | |||
| 466 | }, debounce_timeout.relaxed); | 466 | }, debounce_timeout.relaxed); |
| 467 | 467 | ||
| 468 | export function setPersonaDescription() { | 468 | export function setPersonaDescription() { |
| 469 | $('#your_name').text(name1); | ||
| 470 | |||
| 469 | if (power_user.persona_description_position === persona_description_positions.AFTER_CHAR) { | 471 | if (power_user.persona_description_position === persona_description_positions.AFTER_CHAR) { |
| 470 | power_user.persona_description_position = persona_description_positions.IN_PROMPT; | 472 | power_user.persona_description_position = persona_description_positions.IN_PROMPT; |
| 471 | } | 473 | } |
| @@ -674,9 +676,8 @@ async function updatePersonaNameIfExists(avatarId, newName) { | |||
| 674 | saveSettingsDebounced(); | 676 | saveSettingsDebounced(); |
| 675 | } | 677 | } |
| 676 | 678 | ||
| 677 | async function bindUserNameToPersona(e) { | 679 | async function bindUserNameToPersona() { |
| 678 | e?.stopPropagation(); | 680 | const avatarId = user_avatar; |
| 679 | const avatarId = $(this).closest('.avatar-container').find('.avatar').attr('imgfile'); | ||
| 680 | 681 | ||
| 681 | if (!avatarId) { | 682 | if (!avatarId) { |
| 682 | console.warn('No avatar id found'); | 683 | console.warn('No avatar id found'); |
| @@ -719,6 +720,7 @@ async function bindUserNameToPersona(e) { | |||
| 719 | if (isCurrentPersona) { | 720 | if (isCurrentPersona) { |
| 720 | console.log(`Auto-updating user name to ${personaName}`); | 721 | console.log(`Auto-updating user name to ${personaName}`); |
| 721 | setUserName(personaName); | 722 | setUserName(personaName); |
| 723 | await updatePersonaNameIfExists(user_avatar, personaName); | ||
| 722 | } | 724 | } |
| 723 | } else { | 725 | } else { |
| 724 | // If the user clicked ok, but didn't enter a name, delete the persona | 726 | // If the user clicked ok, but didn't enter a name, delete the persona |
| @@ -730,6 +732,8 @@ async function bindUserNameToPersona(e) { | |||
| 730 | saveSettingsDebounced(); | 732 | saveSettingsDebounced(); |
| 731 | await getUserAvatars(true, avatarId); | 733 | await getUserAvatars(true, avatarId); |
| 732 | setPersonaDescription(); | 734 | setPersonaDescription(); |
| 735 | |||
| 736 | retriggerFirstMessageOnEmptyChat(); | ||
| 733 | } | 737 | } |
| 734 | 738 | ||
| 735 | function selectCurrentPersona({ toastPersonaNameChange = true } = {}) { | 739 | function selectCurrentPersona({ toastPersonaNameChange = true } = {}) { |
| @@ -969,22 +973,15 @@ async function lockPersona(type = 'chat') { | |||
| 969 | } | 973 | } |
| 970 | 974 | ||
| 971 | 975 | ||
| 972 | async function deleteUserAvatar(e) { | 976 | async function deleteUserAvatar() { |
| 973 | e?.stopPropagation(); | 977 | const avatarId = user_avatar; |
| 974 | const avatarId = $(this).closest('.avatar-container').find('.avatar').attr('imgfile'); | ||
| 975 | 978 | ||
| 976 | if (!avatarId) { | 979 | if (!avatarId) { |
| 977 | console.warn('No avatar id found'); | 980 | console.warn('No avatar id found'); |
| 978 | return; | 981 | return; |
| 979 | } | 982 | } |
| 980 | 983 | const confirm = await Popup.show.confirm(t`Delete Persona`, | |
| 981 | if (avatarId == user_avatar) { | 984 | t`Are you sure you want to delete this avatar?` + '<br />' + t`All information associated with its linked persona will be lost.`); |
| 982 | console.warn(`User tried to delete their current avatar ${avatarId}`); | ||
| 983 | toastr.warning(t`You cannot delete the avatar you are currently using`, t`Persona Warning`); | ||
| 984 | return; | ||
| 985 | } | ||
| 986 | |||
| 987 | const confirm = await Popup.show.confirm(t`Are you sure you want to delete this avatar?`, t`All information associated with its linked persona will be lost.`); | ||
| 988 | 985 | ||
| 989 | if (!confirm) { | 986 | if (!confirm) { |
| 990 | console.debug('User cancelled deleting avatar'); | 987 | console.debug('User cancelled deleting avatar'); |
| @@ -1016,8 +1013,9 @@ async function deleteUserAvatar(e) { | |||
| 1016 | } | 1013 | } |
| 1017 | 1014 | ||
| 1018 | saveSettingsDebounced(); | 1015 | saveSettingsDebounced(); |
| 1019 | await getUserAvatars(); | 1016 | |
| 1020 | updatePersonaLockIcons(); | 1017 | // Use the existing mechanism to re-render the persona list and choose the next persona here |
| 1018 | await loadPersonaForCurrentChat({ doRender: true }); | ||
| 1021 | } | 1019 | } |
| 1022 | } | 1020 | } |
| 1023 | 1021 | ||
| @@ -1237,9 +1235,9 @@ function updatePersonaLockIcons() { | |||
| 1237 | $('#lock_persona_to_char i.icon').toggleClass('fa-unlock', !hasCharLock); | 1235 | $('#lock_persona_to_char i.icon').toggleClass('fa-unlock', !hasCharLock); |
| 1238 | } | 1236 | } |
| 1239 | 1237 | ||
| 1240 | async function loadPersonaForCurrentChat() { | 1238 | async function loadPersonaForCurrentChat({ doRender = false } = {}) { |
| 1241 | // Cache persona list to check if they exist | 1239 | // Cache persona list to check if they exist |
| 1242 | const userAvatars = await getUserAvatars(false); | 1240 | const userAvatars = await getUserAvatars(doRender); |
| 1243 | 1241 | ||
| 1244 | // Define a persona for this chat | 1242 | // Define a persona for this chat |
| 1245 | let chatPersona = ''; | 1243 | let chatPersona = ''; |
| @@ -1500,9 +1498,8 @@ async function duplicatePersona(avatarId) { | |||
| 1500 | } | 1498 | } |
| 1501 | 1499 | ||
| 1502 | export function initPersonas() { | 1500 | export function initPersonas() { |
| 1503 | $(document).on('click', '.bind_user_name', bindUserNameToPersona); | ||
| 1504 | $(document).on('click', '.set_default_persona', toggleDefaultPersonaClicked); | 1501 | $(document).on('click', '.set_default_persona', toggleDefaultPersonaClicked); |
| 1505 | $(document).on('click', '.delete_avatar', deleteUserAvatar); | 1502 | $('#persona_delete_button').on('click', deleteUserAvatar); |
| 1506 | $('#lock_persona_default').on('click', () => togglePersonaLock('default')); | 1503 | $('#lock_persona_default').on('click', () => togglePersonaLock('default')); |
| 1507 | $('#lock_user_name').on('click', () => togglePersonaLock('chat')); | 1504 | $('#lock_user_name').on('click', () => togglePersonaLock('chat')); |
| 1508 | $('#lock_persona_to_char').on('click', () => togglePersonaLock('character')); | 1505 | $('#lock_persona_to_char').on('click', () => togglePersonaLock('character')); |
| @@ -1548,11 +1545,13 @@ export function initPersonas() { | |||
| 1548 | retriggerFirstMessageOnEmptyChat(); | 1545 | retriggerFirstMessageOnEmptyChat(); |
| 1549 | }); | 1546 | }); |
| 1550 | 1547 | ||
| 1551 | $('#your_name_button').click(async function () { | 1548 | $('#persona_rename_button').click(async function () { |
| 1552 | const userName = String($('#your_name').val()).trim(); | 1549 | const userName = String($('#your_name').val()).trim(); |
| 1553 | setUserName(userName); | 1550 | setUserName(userName); |
| 1554 | await updatePersonaNameIfExists(user_avatar, userName); | 1551 | await updatePersonaNameIfExists(user_avatar, userName); |
| 1555 | retriggerFirstMessageOnEmptyChat(); | 1552 | retriggerFirstMessageOnEmptyChat(); |
| 1553 | // TODO: Do both binding and/or rename? | ||
| 1554 | //bindUserNameToPersona(); | ||
| 1556 | }); | 1555 | }); |
| 1557 | 1556 | ||
| 1558 | $(document).on('click', '#user_avatar_block .avatar_upload', function () { | 1557 | $(document).on('click', '#user_avatar_block .avatar_upload', function () { |
| @@ -1560,28 +1559,15 @@ export function initPersonas() { | |||
| 1560 | $('#avatar_upload_file').trigger('click'); | 1559 | $('#avatar_upload_file').trigger('click'); |
| 1561 | }); | 1560 | }); |
| 1562 | 1561 | ||
| 1563 | $(document).on('click', '#user_avatar_block .duplicate_persona', function (e) { | 1562 | $('#persona_duplicate_button').on('click', () => duplicatePersona(user_avatar)); |
| 1564 | e.stopPropagation(); | ||
| 1565 | const avatarId = $(this).closest('.avatar-container').find('.avatar').attr('imgfile'); | ||
| 1566 | |||
| 1567 | if (!avatarId) { | ||
| 1568 | console.log('no imgfile'); | ||
| 1569 | return; | ||
| 1570 | } | ||
| 1571 | |||
| 1572 | duplicatePersona(avatarId); | ||
| 1573 | }); | ||
| 1574 | |||
| 1575 | $(document).on('click', '#user_avatar_block .set_persona_image', function (e) { | ||
| 1576 | e.stopPropagation(); | ||
| 1577 | const avatarId = $(this).closest('.avatar-container').find('.avatar').attr('imgfile'); | ||
| 1578 | 1563 | ||
| 1579 | if (!avatarId) { | 1564 | $('#persona_set_image_button').on('click', function () { |
| 1565 | if (!user_avatar) { | ||
| 1580 | console.log('no imgfile'); | 1566 | console.log('no imgfile'); |
| 1581 | return; | 1567 | return; |
| 1582 | } | 1568 | } |
| 1583 | 1569 | ||
| 1584 | $('#avatar_upload_overwrite').val(avatarId); | 1570 | $('#avatar_upload_overwrite').val(user_avatar); |
| 1585 | $('#avatar_upload_file').trigger('click'); | 1571 | $('#avatar_upload_file').trigger('click'); |
| 1586 | }); | 1572 | }); |
| 1587 | 1573 | ||
| @@ -2919,6 +2919,16 @@ select option:not(:checked) { | |||
| 2919 | filter: grayscale(0.5); | 2919 | filter: grayscale(0.5); |
| 2920 | } | 2920 | } |
| 2921 | 2921 | ||
| 2922 | #persona_controls .persona_name { | ||
| 2923 | text-overflow: ellipsis; | ||
| 2924 | overflow: hidden; | ||
| 2925 | text-align: left; | ||
| 2926 | white-space: nowrap; | ||
| 2927 | margin-right: 10px; | ||
| 2928 | font-size: calc(var(--mainFontSize) * 1.25); | ||
| 2929 | color: var(--grey50); | ||
| 2930 | } | ||
| 2931 | |||
| 2922 | input[type=search]::-webkit-search-cancel-button { | 2932 | input[type=search]::-webkit-search-cancel-button { |
| 2923 | -webkit-appearance: none; | 2933 | -webkit-appearance: none; |
| 2924 | height: 1em; | 2934 | height: 1em; |
| @@ -3395,12 +3405,7 @@ grammarly-extension { | |||
| 3395 | cursor: pointer; | 3405 | cursor: pointer; |
| 3396 | } | 3406 | } |
| 3397 | 3407 | ||
| 3398 | #rm_characters_block .form_create_bottom_buttons_block { | 3408 | .buttons_block { |
| 3399 | justify-content: space-evenly !important; | ||
| 3400 | flex-grow: 0; | ||
| 3401 | } | ||
| 3402 | |||
| 3403 | .form_create_bottom_buttons_block { | ||
| 3404 | display: flex; | 3409 | display: flex; |
| 3405 | flex: 1; | 3410 | flex: 1; |
| 3406 | gap: 5px; | 3411 | gap: 5px; |
| @@ -3409,18 +3414,21 @@ grammarly-extension { | |||
| 3409 | flex-wrap: wrap; | 3414 | flex-wrap: wrap; |
| 3410 | } | 3415 | } |
| 3411 | 3416 | ||
| 3412 | .form_create_bottom_buttons_block .menu_button { | 3417 | .buttons_block .menu_button { |
| 3413 | display: flex; | 3418 | display: flex; |
| 3414 | justify-content: center; | 3419 | justify-content: center; |
| 3415 | align-items: center; | 3420 | align-items: center; |
| 3421 | padding: 5px; | ||
| 3422 | margin: 0; | ||
| 3423 | filter: grayscale(0.5); | ||
| 3416 | } | 3424 | } |
| 3417 | 3425 | ||
| 3418 | #delete_button, | 3426 | .red_button, |
| 3419 | .redWarningBG { | 3427 | .redWarningBG { |
| 3420 | background-color: var(--crimson70a) !important; | 3428 | background-color: var(--crimson70a) !important; |
| 3421 | } | 3429 | } |
| 3422 | 3430 | ||
| 3423 | #delete_button:hover, | 3431 | .red_button:hover, |
| 3424 | .redWarningBG:hover { | 3432 | .redWarningBG:hover { |
| 3425 | background-color: var(--fullred) !important; | 3433 | background-color: var(--fullred) !important; |
| 3426 | } | 3434 | } |
| @@ -3614,13 +3622,6 @@ grammarly-extension { | |||
| 3614 | min-width: calc(1.25em + 12px); | 3622 | min-width: calc(1.25em + 12px); |
| 3615 | } | 3623 | } |
| 3616 | 3624 | ||
| 3617 | .avatar_div .menu_button, | ||
| 3618 | .form_create_bottom_buttons_block .menu_button { | ||
| 3619 | padding: 5px; | ||
| 3620 | margin: 0; | ||
| 3621 | filter: grayscale(0.5); | ||
| 3622 | } | ||
| 3623 | |||
| 3624 | .menu_button:hover, | 3625 | .menu_button:hover, |
| 3625 | .menu_button.active { | 3626 | .menu_button.active { |
| 3626 | background-color: var(--white30a); | 3627 | background-color: var(--white30a); |