mirror of https://github.com/FreeTubeApp/FreeTube
Compare commits
20 Commits
aae8a8cf07
...
0e5da85ed2
Author | SHA1 | Date |
---|---|---|
Jason | 0e5da85ed2 | |
summoner001 | ec5ca2bb66 | |
gallegonovato | b7e94669cb | |
Fjuro | ce57393549 | |
Oğuz Ersen | f5c89f3f9f | |
Massimo Pissarello | a2d67523ab | |
Jose Delvani | fc123f3792 | |
大王叫我来巡山 | 1bd3ee936a | |
Jason Henriquez | c3ca8912ed | |
Jason Henriquez | b9af359730 | |
Jason Henriquez | 73690fab4a | |
Jason Henriquez | 7532bb47bd | |
Jason Henriquez | 8c1009b1e3 | |
Jason Henriquez | d77bbe614f | |
Jason Henriquez | 3dd4ea47b6 | |
Jason Henriquez | e688b23c31 | |
Jason Henriquez | 69d155d665 | |
Jason Henriquez | da5a42d5f7 | |
Jason Henriquez | 7056778872 | |
Jason Henriquez | 62ad7d987a |
|
@ -39,7 +39,8 @@ export default defineComponent({
|
|||
'youtubenew',
|
||||
'youtube',
|
||||
'youtubeold',
|
||||
'newpipe'
|
||||
'newpipe',
|
||||
'close'
|
||||
],
|
||||
|
||||
shouldExportPlaylistForOlderVersions: false,
|
||||
|
@ -70,7 +71,8 @@ export default defineComponent({
|
|||
`${exportYouTube} (.csv)`,
|
||||
`${exportYouTube} (.json)`,
|
||||
`${exportYouTube} (.opml)`,
|
||||
`${exportNewPipe} (.json)`
|
||||
`${exportNewPipe} (.json)`,
|
||||
this.$t('Close')
|
||||
]
|
||||
},
|
||||
primaryProfile: function () {
|
||||
|
|
|
@ -67,7 +67,6 @@
|
|||
:label="$t('Settings.Data Settings.Select Export Type')"
|
||||
:option-names="exportSubscriptionsPromptNames"
|
||||
:option-values="subscriptionsPromptValues"
|
||||
:show-close="true"
|
||||
@click="exportSubscriptions"
|
||||
/>
|
||||
</ft-settings-section>
|
||||
|
|
|
@ -37,7 +37,7 @@ export default defineComponent({
|
|||
handleReplaceHttpCache: function (value) {
|
||||
this.showRestartPrompt = false
|
||||
|
||||
if (value === null || value === 'no') {
|
||||
if (value === null || value === 'cancel') {
|
||||
this.replaceHttpCache = !this.replaceHttpCache
|
||||
return
|
||||
}
|
||||
|
|
|
@ -19,8 +19,8 @@
|
|||
<ft-prompt
|
||||
v-if="showRestartPrompt"
|
||||
:label="$t('Settings[\'The app needs to restart for changes to take effect. Restart and apply change?\']')"
|
||||
:option-names="[$t('Yes'), $t('No')]"
|
||||
:option-values="['yes', 'no']"
|
||||
:option-names="[$t('Yes, Restart'), $t('Cancel')]"
|
||||
:option-values="['restart', 'cancel']"
|
||||
@click="handleReplaceHttpCache"
|
||||
/>
|
||||
</ft-settings-section>
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
block-size: fit-content;
|
||||
box-sizing: border-box;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
|
@ -17,6 +16,8 @@
|
|||
white-space: nowrap;
|
||||
font-weight: 500;
|
||||
vertical-align: middle;
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
margin: 5px;
|
||||
box-shadow: 0 1px 2px rgb(0 0 0 / 50%);
|
||||
}
|
||||
|
|
|
@ -18,6 +18,10 @@ export default defineComponent({
|
|||
id: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
icon: {
|
||||
type: Array,
|
||||
default: null
|
||||
}
|
||||
},
|
||||
emits: ['click'],
|
||||
|
|
|
@ -10,6 +10,10 @@
|
|||
@click="click"
|
||||
>
|
||||
<slot>
|
||||
<font-awesome-icon
|
||||
v-if="icon"
|
||||
:icon="icon"
|
||||
/>
|
||||
{{ label }}
|
||||
</slot>
|
||||
</button>
|
||||
|
|
|
@ -24,6 +24,8 @@
|
|||
/>
|
||||
<ft-button
|
||||
:label="$t('User Playlists.Cancel')"
|
||||
:text-color="null"
|
||||
:background-color="null"
|
||||
@click="hideCreatePlaylistPrompt"
|
||||
/>
|
||||
</ft-flex-box>
|
||||
|
|
|
@ -74,6 +74,20 @@
|
|||
}
|
||||
}
|
||||
|
||||
&.destructive {
|
||||
background-color: var(--destructive-color);
|
||||
color: var(--destructive-text-color);
|
||||
|
||||
&:hover,
|
||||
&:focus-visible {
|
||||
background-color: var(--destructive-hover-color);
|
||||
}
|
||||
|
||||
&:active {
|
||||
background-color: var(--destructive-active-color);
|
||||
}
|
||||
}
|
||||
|
||||
&.favorite, &.favorite:hover, &.favorite:focus-visible {
|
||||
color: var(--favorite-icon-color);
|
||||
}
|
||||
|
|
|
@ -73,6 +73,8 @@
|
|||
/>
|
||||
<ft-button
|
||||
:label="$t('User Playlists.Cancel')"
|
||||
:text-color="null"
|
||||
:background-color="null"
|
||||
@click="hide"
|
||||
/>
|
||||
</ft-flex-box>
|
||||
|
|
|
@ -34,8 +34,8 @@ export default defineComponent({
|
|||
subscriptions: [],
|
||||
selectedLength: 0,
|
||||
deletePromptValues: [
|
||||
'yes',
|
||||
'no'
|
||||
'delete',
|
||||
'cancel'
|
||||
]
|
||||
}
|
||||
},
|
||||
|
@ -61,8 +61,8 @@ export default defineComponent({
|
|||
},
|
||||
deletePromptNames: function () {
|
||||
return [
|
||||
this.$t('Yes'),
|
||||
this.$t('No')
|
||||
this.$t('Yes, Delete'),
|
||||
this.$t('Cancel')
|
||||
]
|
||||
},
|
||||
locale: function () {
|
||||
|
@ -109,7 +109,7 @@ export default defineComponent({
|
|||
},
|
||||
|
||||
handleDeletePromptClick: function (value) {
|
||||
if (value !== 'no' && value !== null) {
|
||||
if (value !== 'cancel' && value !== null) {
|
||||
if (this.isMainProfile) {
|
||||
const channelsToRemove = this.subscriptions.filter((channel) => channel.selected)
|
||||
this.subscriptions = this.subscriptions.filter((channel) => !channel.selected)
|
||||
|
|
|
@ -30,8 +30,8 @@
|
|||
/>
|
||||
<ft-button
|
||||
:label="$t('Profile.Delete Selected')"
|
||||
text-color="var(--text-with-main-color)"
|
||||
background-color="var(--primary-color)"
|
||||
text-color="var(--destructive-text-color)"
|
||||
background-color="var(--destructive-color)"
|
||||
@click="displayDeletePrompt"
|
||||
/>
|
||||
</ft-flex-box>
|
||||
|
@ -41,6 +41,7 @@
|
|||
:label="deletePromptMessage"
|
||||
:option-names="deletePromptNames"
|
||||
:option-values="deletePromptValues"
|
||||
:is-first-option-destructive="true"
|
||||
@click="handleDeletePromptClick"
|
||||
/>
|
||||
</div>
|
||||
|
|
|
@ -41,8 +41,8 @@ export default defineComponent({
|
|||
profileBgColor: '',
|
||||
profileTextColor: '',
|
||||
deletePromptValues: [
|
||||
'yes',
|
||||
'no'
|
||||
'delete',
|
||||
'cancel'
|
||||
]
|
||||
}
|
||||
},
|
||||
|
@ -64,8 +64,8 @@ export default defineComponent({
|
|||
},
|
||||
deletePromptNames: function () {
|
||||
return [
|
||||
this.$t('Yes'),
|
||||
this.$t('No')
|
||||
this.$t('Yes, Delete'),
|
||||
this.$t('Cancel')
|
||||
]
|
||||
},
|
||||
editOrCreateProfileLabel: function () {
|
||||
|
@ -95,7 +95,7 @@ export default defineComponent({
|
|||
},
|
||||
|
||||
handleDeletePrompt: function (response) {
|
||||
if (response === 'yes') {
|
||||
if (response === 'delete') {
|
||||
this.deleteProfile()
|
||||
} else {
|
||||
this.showDeletePrompt = false
|
||||
|
|
|
@ -82,8 +82,9 @@
|
|||
<ft-button
|
||||
v-if="!isMainProfile"
|
||||
:label="$t('Profile.Delete Profile')"
|
||||
text-color="var(--text-with-main-color)"
|
||||
background-color="var(--primary-color)"
|
||||
text-color="var(--destructive-text-color)"
|
||||
background-color="var(--destructive-color)"
|
||||
:icon="['fas', 'trash']"
|
||||
@click="openDeletePrompt"
|
||||
/>
|
||||
</template>
|
||||
|
@ -98,6 +99,7 @@
|
|||
:label="deletePromptLabel"
|
||||
:option-names="deletePromptNames"
|
||||
:option-values="deletePromptValues"
|
||||
:is-first-option-destructive="true"
|
||||
@click="handleDeletePrompt"
|
||||
/>
|
||||
</div>
|
||||
|
|
|
@ -29,14 +29,14 @@ export default defineComponent({
|
|||
type: Array,
|
||||
default: () => { return [] }
|
||||
},
|
||||
showClose: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
autosize: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
isFirstOptionDestructive: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
},
|
||||
emits: ['click'],
|
||||
data: function () {
|
||||
|
@ -48,7 +48,7 @@ export default defineComponent({
|
|||
computed: {
|
||||
sanitizedLabel: function() {
|
||||
return sanitizeForHtmlId(this.label)
|
||||
}
|
||||
},
|
||||
},
|
||||
beforeDestroy: function () {
|
||||
document.removeEventListener('keydown', this.closeEventFunction, true)
|
||||
|
@ -67,6 +67,24 @@ export default defineComponent({
|
|||
this.focusItem(0)
|
||||
},
|
||||
methods: {
|
||||
optionButtonTextColor: function(index) {
|
||||
if (index === 0 && this.isFirstOptionDestructive) {
|
||||
return 'var(--destructive-text-color)'
|
||||
} else if (index < this.optionNames.length - 1) {
|
||||
return 'var(--text-with-accent-color)'
|
||||
} else {
|
||||
return null
|
||||
}
|
||||
},
|
||||
optionButtonBackgroundColor: function(index) {
|
||||
if (index === 0 && this.isFirstOptionDestructive) {
|
||||
return 'var(--destructive-color)'
|
||||
} else if (index < this.optionNames.length - 1) {
|
||||
return 'var(--accent-color)'
|
||||
} else {
|
||||
return null
|
||||
}
|
||||
},
|
||||
click: function (value) {
|
||||
this.$emit('click', value)
|
||||
},
|
||||
|
|
|
@ -32,17 +32,11 @@
|
|||
:id="'prompt-' + sanitizedLabel + '-' + index"
|
||||
:key="index"
|
||||
:label="option"
|
||||
:text-color="optionButtonTextColor(index)"
|
||||
:background-color="optionButtonBackgroundColor(index)"
|
||||
:icon="index === 0 && isFirstOptionDestructive ? ['fas', 'trash'] : null"
|
||||
@click="click(optionValues[index])"
|
||||
/>
|
||||
<ft-button
|
||||
v-if="showClose"
|
||||
:id="'prompt-' + sanitizedLabel + '-close'"
|
||||
:label="$t('Close')"
|
||||
:tabindex="0"
|
||||
text-color="'var(--accent-color)'"
|
||||
background-color="'var(--text-with-accent-color)'"
|
||||
@click="hide"
|
||||
/>
|
||||
</ft-flex-box>
|
||||
</slot>
|
||||
</ft-card>
|
||||
|
|
|
@ -153,14 +153,14 @@
|
|||
v-if="!editMode && isUserPlaylist && videoCount > 0"
|
||||
:title="$t('User Playlists.Remove Watched Videos')"
|
||||
:icon="['fas', 'eye-slash']"
|
||||
theme="primary"
|
||||
theme="destructive"
|
||||
@click="showRemoveVideosOnWatchPrompt = true"
|
||||
/>
|
||||
<ft-icon-button
|
||||
v-if="deletePlaylistButtonVisible"
|
||||
:title="$t('User Playlists.Delete Playlist')"
|
||||
:icon="['fas', 'trash']"
|
||||
theme="primary"
|
||||
theme="destructive"
|
||||
@click="showDeletePlaylistPrompt = true"
|
||||
/>
|
||||
<ft-share-button
|
||||
|
@ -177,6 +177,7 @@
|
|||
:label="$t('User Playlists.Are you sure you want to delete this playlist? This cannot be undone')"
|
||||
:option-names="deletePlaylistPromptNames"
|
||||
:option-values="deletePlaylistPromptValues"
|
||||
:is-first-option-destructive="true"
|
||||
@click="handleDeletePlaylistPromptAnswer"
|
||||
/>
|
||||
<ft-prompt
|
||||
|
@ -184,6 +185,7 @@
|
|||
:label="$t('User Playlists.Are you sure you want to remove all watched videos from this playlist? This cannot be undone')"
|
||||
:option-names="deletePlaylistPromptNames"
|
||||
:option-values="deletePlaylistPromptValues"
|
||||
:is-first-option-destructive="true"
|
||||
@click="handleRemoveVideosOnWatchPromptAnswer"
|
||||
/>
|
||||
</div>
|
||||
|
|
|
@ -24,8 +24,8 @@ export default defineComponent({
|
|||
showRemoveSubscriptionsPrompt: false,
|
||||
showRemovePlaylistsPrompt: false,
|
||||
promptValues: [
|
||||
'yes',
|
||||
'no'
|
||||
'delete',
|
||||
'cancel'
|
||||
]
|
||||
}
|
||||
},
|
||||
|
@ -48,8 +48,8 @@ export default defineComponent({
|
|||
},
|
||||
promptNames: function () {
|
||||
return [
|
||||
this.$t('Yes'),
|
||||
this.$t('No')
|
||||
this.$t('Yes, Delete'),
|
||||
this.$t('Cancel')
|
||||
]
|
||||
}
|
||||
},
|
||||
|
@ -57,7 +57,7 @@ export default defineComponent({
|
|||
handleSearchCache: function (option) {
|
||||
this.showSearchCachePrompt = false
|
||||
|
||||
if (option === 'yes') {
|
||||
if (option === 'delete') {
|
||||
this.clearSessionSearchHistory()
|
||||
showToast(this.$t('Settings.Privacy Settings.Search cache has been cleared'))
|
||||
}
|
||||
|
@ -74,7 +74,7 @@ export default defineComponent({
|
|||
handleRemoveHistory: function (option) {
|
||||
this.showRemoveHistoryPrompt = false
|
||||
|
||||
if (option === 'yes') {
|
||||
if (option === 'delete') {
|
||||
this.removeAllHistory()
|
||||
showToast(this.$t('Settings.Privacy Settings.Watch history has been cleared'))
|
||||
}
|
||||
|
@ -85,7 +85,7 @@ export default defineComponent({
|
|||
|
||||
this.updateActiveProfile(MAIN_PROFILE_ID)
|
||||
|
||||
if (option !== 'yes') { return }
|
||||
if (option !== 'delete') { return }
|
||||
|
||||
this.profileList.forEach((profile) => {
|
||||
if (profile._id === MAIN_PROFILE_ID) {
|
||||
|
|
|
@ -34,26 +34,30 @@
|
|||
<ft-flex-box>
|
||||
<ft-button
|
||||
:label="$t('Settings.Privacy Settings.Clear Search Cache')"
|
||||
text-color="var(--text-with-main-color)"
|
||||
background-color="var(--primary-color)"
|
||||
text-color="var(--destructive-text-color)"
|
||||
background-color="var(--destructive-color)"
|
||||
:icon="['fas', 'trash']"
|
||||
@click="showSearchCachePrompt = true"
|
||||
/>
|
||||
<ft-button
|
||||
:label="$t('Settings.Privacy Settings.Remove Watch History')"
|
||||
text-color="var(--text-with-main-color)"
|
||||
background-color="var(--primary-color)"
|
||||
text-color="var(--destructive-text-color)"
|
||||
background-color="var(--destructive-color)"
|
||||
:icon="['fas', 'trash']"
|
||||
@click="showRemoveHistoryPrompt = true"
|
||||
/>
|
||||
<ft-button
|
||||
:label="$t('Settings.Privacy Settings.Remove All Subscriptions / Profiles')"
|
||||
text-color="var(--text-with-main-color)"
|
||||
background-color="var(--primary-color)"
|
||||
text-color="var(--destructive-text-color)"
|
||||
background-color="var(--destructive-color)"
|
||||
:icon="['fas', 'trash']"
|
||||
@click="showRemoveSubscriptionsPrompt = true"
|
||||
/>
|
||||
<ft-button
|
||||
:label="$t('Settings.Privacy Settings.Remove All Playlists')"
|
||||
text-color="var(--text-with-main-color)"
|
||||
background-color="var(--primary-color)"
|
||||
text-color="var(--destructive-text-color)"
|
||||
background-color="var(--destructive-color)"
|
||||
:icon="['fas', 'trash']"
|
||||
@click="showRemovePlaylistsPrompt = true"
|
||||
/>
|
||||
</ft-flex-box>
|
||||
|
@ -62,6 +66,7 @@
|
|||
:label="$t('Settings.Privacy Settings.Are you sure you want to clear out your search cache?')"
|
||||
:option-names="promptNames"
|
||||
:option-values="promptValues"
|
||||
:is-first-option-destructive="true"
|
||||
@click="handleSearchCache"
|
||||
/>
|
||||
<ft-prompt
|
||||
|
@ -69,6 +74,7 @@
|
|||
:label="$t('Settings.Privacy Settings.Are you sure you want to remove your entire watch history?')"
|
||||
:option-names="promptNames"
|
||||
:option-values="promptValues"
|
||||
:is-first-option-destructive="true"
|
||||
@click="handleRemoveHistory"
|
||||
/>
|
||||
<ft-prompt
|
||||
|
@ -76,6 +82,7 @@
|
|||
:label="removeSubscriptionsPromptMessage"
|
||||
:option-names="promptNames"
|
||||
:option-values="promptValues"
|
||||
:is-first-option-destructive="true"
|
||||
@click="handleRemoveSubscriptions"
|
||||
/>
|
||||
<ft-prompt
|
||||
|
@ -83,6 +90,7 @@
|
|||
:label="$t('Settings.Privacy Settings.Are you sure you want to remove all your playlists?')"
|
||||
:option-names="promptNames"
|
||||
:option-values="promptValues"
|
||||
:is-first-option-destructive="true"
|
||||
@click="handleRemovePlaylists"
|
||||
/>
|
||||
</ft-settings-section>
|
||||
|
|
|
@ -27,8 +27,8 @@ export default defineComponent({
|
|||
disableSmoothScrollingToggleValue: false,
|
||||
showRestartPrompt: false,
|
||||
restartPromptValues: [
|
||||
'yes',
|
||||
'no'
|
||||
'restart',
|
||||
'cancel'
|
||||
],
|
||||
baseThemeValues: [
|
||||
'system',
|
||||
|
@ -90,8 +90,8 @@ export default defineComponent({
|
|||
|
||||
restartPromptNames: function () {
|
||||
return [
|
||||
this.$t('Yes'),
|
||||
this.$t('No')
|
||||
this.$t('Yes, Restart'),
|
||||
this.$t('Cancel')
|
||||
]
|
||||
},
|
||||
|
||||
|
@ -141,7 +141,7 @@ export default defineComponent({
|
|||
handleSmoothScrolling: function (value) {
|
||||
this.showRestartPrompt = false
|
||||
|
||||
if (value === null || value === 'no') {
|
||||
if (value === null || value === 'cancel') {
|
||||
this.disableSmoothScrollingToggleValue = !this.disableSmoothScrollingToggleValue
|
||||
return
|
||||
}
|
||||
|
|
|
@ -86,6 +86,7 @@
|
|||
:label="restartPromptMessage"
|
||||
:option-names="restartPromptNames"
|
||||
:option-values="restartPromptValues"
|
||||
:is-first-option-destructive="true"
|
||||
@click="handleSmoothScrolling"
|
||||
/>
|
||||
</ft-settings-section>
|
||||
|
|
|
@ -8,6 +8,10 @@
|
|||
.hotPink,
|
||||
.nordic {
|
||||
--primary-input-color: rgb(0 0 0 / 50%);
|
||||
--destructive-color: #f44336;
|
||||
--destructive-text-color: #000;
|
||||
--destructive-hover-color: #e53935;
|
||||
--destructive-active-color: #c62828;
|
||||
}
|
||||
|
||||
.system[data-system-theme*='light'], .light,
|
||||
|
@ -191,6 +195,25 @@
|
|||
--logo-text: url("../../_icons/textBlackSmall.svg");
|
||||
}
|
||||
|
||||
.nordic {
|
||||
--primary-text-color: #EEE;
|
||||
--secondary-text-color: #ddd;
|
||||
--tertiary-text-color: #EEE;
|
||||
--title-color: #EEE;
|
||||
--bg-color: #2b2f3a;
|
||||
--favorite-icon-color: #0F0;
|
||||
--card-bg-color: #2e3440;
|
||||
--secondary-card-bg-color: rgb(59 66 82 / 75%);
|
||||
--scrollbar-color: #4b566a;
|
||||
--scrollbar-color-hover: #4b566a;
|
||||
--side-nav-color: #2e3440;
|
||||
--side-nav-hover-color: #3b4252;
|
||||
--side-nav-active-color: #3b4252;
|
||||
--search-bar-color: #4b566a;
|
||||
--logo-icon: url("../../_icons/iconNordicLightSmall.svg");
|
||||
--logo-text: url("../../_icons/textNordicLightSmall.svg");
|
||||
}
|
||||
|
||||
.hotPink {
|
||||
--primary-text-color: #FFFF;
|
||||
--secondary-text-color: #FFFF;
|
||||
|
@ -243,26 +266,6 @@ it can be safely elided. This looks quite pleasant on this theme. */
|
|||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.nordic {
|
||||
--primary-text-color: #EEE;
|
||||
--secondary-text-color: #ddd;
|
||||
--tertiary-text-color: #EEE;
|
||||
--title-color: #EEE;
|
||||
--bg-color: #2b2f3a;
|
||||
--favorite-icon-color: #0F0;
|
||||
--card-bg-color: #2e3440;
|
||||
--secondary-card-bg-color: rgb(59 66 82 / 75%);
|
||||
--scrollbar-color: #4b566a;
|
||||
--scrollbar-color-hover: #4b566a;
|
||||
--side-nav-color: #2e3440;
|
||||
--side-nav-hover-color: #3b4252;
|
||||
--side-nav-active-color: #3b4252;
|
||||
--search-bar-color: #4b566a;
|
||||
--logo-icon: url("../../_icons/iconNordicLightSmall.svg");
|
||||
--logo-text: url("../../_icons/textNordicLightSmall.svg");
|
||||
}
|
||||
|
||||
.mainRed,
|
||||
.mainPink,
|
||||
.mainPurple,
|
||||
.mainDeepPurple,
|
||||
|
@ -277,6 +280,7 @@ it can be safely elided. This looks quite pleasant on this theme. */
|
|||
--logo-text-bar-color: url("../../_icons/textWhiteSmall.svg");
|
||||
}
|
||||
|
||||
.mainRed,
|
||||
.mainLightGreen,
|
||||
.mainLime,
|
||||
.mainYellow,
|
||||
|
@ -387,6 +391,7 @@ it can be safely elided. This looks quite pleasant on this theme. */
|
|||
.mainDraculaCyan,
|
||||
.mainDraculaGreen,
|
||||
.mainDraculaOrange,
|
||||
.mainDraculaRed,
|
||||
.mainDraculaYellow {
|
||||
--text-with-main-color: #282A36;
|
||||
--logo-icon-bar-color: url("../../_icons/iconDraculaDarkSmall.svg");
|
||||
|
@ -394,8 +399,7 @@ it can be safely elided. This looks quite pleasant on this theme. */
|
|||
}
|
||||
|
||||
.mainDraculaPink,
|
||||
.mainDraculaPurple,
|
||||
.mainDraculaRed {
|
||||
.mainDraculaPurple {
|
||||
--text-with-main-color: #F8F8F2;
|
||||
--logo-icon-bar-color: url("../../_icons/iconDraculaLightSmall.svg");
|
||||
--logo-text-bar-color: url("../../_icons/textDraculaLightSmall.svg");
|
||||
|
@ -546,7 +550,6 @@ it can be safely elided. This looks quite pleasant on this theme. */
|
|||
--primary-color-active: #8d98e4;
|
||||
}
|
||||
|
||||
.secRed,
|
||||
.secPink,
|
||||
.secPurple,
|
||||
.secDeepPurple,
|
||||
|
@ -559,6 +562,7 @@ it can be safely elided. This looks quite pleasant on this theme. */
|
|||
--text-with-accent-color: #FFF;
|
||||
}
|
||||
|
||||
.secRed,
|
||||
.secLightGreen,
|
||||
.secLime,
|
||||
.secYellow,
|
||||
|
@ -763,13 +767,13 @@ it can be safely elided. This looks quite pleasant on this theme. */
|
|||
.secDraculaCyan,
|
||||
.secDraculaGreen,
|
||||
.secDraculaOrange,
|
||||
.secDraculaRed,
|
||||
.secDraculaYellow {
|
||||
--text-with-accent-color: #212121;
|
||||
}
|
||||
|
||||
.secDraculaPink,
|
||||
.secDraculaPurple,
|
||||
.secDraculaRed {
|
||||
.secDraculaPurple {
|
||||
--text-with-accent-color: #F8F8F2;
|
||||
}
|
||||
|
||||
|
@ -1028,6 +1032,34 @@ it can be safely elided. This looks quite pleasant on this theme. */
|
|||
--accent-color-opacity4: rgb(180 190 254 / 24%);
|
||||
}
|
||||
|
||||
/* region destructive color for red color themes
|
||||
using :has(.app) to increase specificity */
|
||||
.mainRed:has(.app), .secRed:has(.app), .mainDraculaRed:has(.app), .secDraculaRed:has(.app) {
|
||||
--destructive-color: #9C27B0;
|
||||
--destructive-text-color: #FFF;
|
||||
--destructive-hover-color: #8E24AA;
|
||||
--destructive-active-color: #6A1B9A;
|
||||
}
|
||||
|
||||
/* Deal with theme conflict on destructive colors */
|
||||
.mainRed.secPurple,
|
||||
.mainRed.secDeepPurple,
|
||||
.mainRed.secDraculaPurple,
|
||||
.mainDraculaRed.secPurple,
|
||||
.mainDraculaRed.secDeepPurple,
|
||||
.mainDraculaRed.secDraculaPurple,
|
||||
.mainPurple.secRed,
|
||||
.mainPurple.secDraculaRed,
|
||||
.mainDeepPurple.secRed,
|
||||
.mainDeepPurple.secDraculaRed,
|
||||
.mainDraculaPurple.secRed,
|
||||
.mainDraculaPurple.secDraculaRed {
|
||||
--destructive-color: #FF9800;
|
||||
--destructive-text-color: #FFF;
|
||||
--destructive-hover-color: #FB8C00;
|
||||
--destructive-active-color: #EF6C00;
|
||||
}
|
||||
|
||||
body[dir='ltr'] {
|
||||
--ltr-or-rtl: ltr;
|
||||
--float-left-ltr-rtl-value: left;
|
||||
|
|
|
@ -626,6 +626,7 @@ Settings:
|
|||
Remove Password: Odebrat heslo
|
||||
Set Password: Nastavit heslo
|
||||
Expand All Settings Sections: Rozbalit všechny sekce nastavení
|
||||
Sort Settings Sections (A-Z): Seřadit sekce nastavení (A-Z)
|
||||
About:
|
||||
#On About page
|
||||
About: 'O aplikaci'
|
||||
|
|
|
@ -1068,6 +1068,9 @@ Moments Ago: moments ago
|
|||
Yes: Yes
|
||||
No: No
|
||||
Ok: Ok
|
||||
Yes, Delete: Yes, Delete
|
||||
Yes, Restart: Yes, Restart
|
||||
Cancel: Cancel
|
||||
# symbol used to indicate that an item is correct
|
||||
checkmark: ✓
|
||||
# French is the only language that should change this (they have a space before the colon)
|
||||
|
|
|
@ -639,6 +639,7 @@ Settings:
|
|||
Password Incorrect: Contraseña incorrecta
|
||||
Unlock: Desbloquear
|
||||
Expand All Settings Sections: Expandir todas las secciones de los ajustes
|
||||
Sort Settings Sections (A-Z): Ordenar secciones de configuración (A-Z)
|
||||
About:
|
||||
#On About page
|
||||
About: 'Acerca de'
|
||||
|
|
|
@ -649,6 +649,7 @@ Settings:
|
|||
Set Password: Jelszó megadása
|
||||
Remove Password: Jelszó eltávolítása
|
||||
Expand All Settings Sections: Beállítások kiterjesztése
|
||||
Sort Settings Sections (A-Z): Beállítások rendezése (A-Z)
|
||||
About:
|
||||
#On About page
|
||||
About: 'Névjegy'
|
||||
|
|
|
@ -646,6 +646,7 @@ Settings:
|
|||
Impostazioni
|
||||
Remove Password: Rimuovi password
|
||||
Expand All Settings Sections: Espandi tutte le sezioni delle Impostazioni
|
||||
Sort Settings Sections (A-Z): Ordina le sezioni delle Impostazioni (A-Z)
|
||||
About:
|
||||
#On About page
|
||||
About: 'Informazioni'
|
||||
|
|
|
@ -641,6 +641,7 @@ Settings:
|
|||
Password: Senha
|
||||
Enter Password To Unlock: Digite a senha para desbloquear as configurações
|
||||
Expand All Settings Sections: Expandir todas as seções de configurações
|
||||
Sort Settings Sections (A-Z): Classificar seções de configurações (A-Z)
|
||||
About:
|
||||
#On About page
|
||||
About: 'Sobre'
|
||||
|
@ -1222,6 +1223,6 @@ Age Restricted:
|
|||
checkmark: ✓
|
||||
Display Label: '{label}: {value}'
|
||||
Feed:
|
||||
Feed Last Updated: '{feedName} última atualização do feed: {date}'
|
||||
Feed Last Updated: '{feedName} última atualização: {date}'
|
||||
Refresh Feed: Atualizar {subscriptionName}
|
||||
Moments Ago: momentos atrás
|
||||
|
|
|
@ -638,6 +638,7 @@ Settings:
|
|||
Remove Password: Parolayı Kaldır
|
||||
Set Password: Parola Ayarla
|
||||
Expand All Settings Sections: Tüm Ayarlar Bölümlerini Genişlet
|
||||
Sort Settings Sections (A-Z): Ayarlar Bölümlerini Sırala (A-Z)
|
||||
About:
|
||||
#On About page
|
||||
About: 'Hakkında'
|
||||
|
|
|
@ -565,6 +565,7 @@ Settings:
|
|||
Set Password: 设置密码
|
||||
Remove Password: 删除密码
|
||||
Expand All Settings Sections: 展开所有设置部分
|
||||
Sort Settings Sections (A-Z): 对设置部分进行排序(A-Z)
|
||||
About:
|
||||
#On About page
|
||||
About: '关于'
|
||||
|
|
Loading…
Reference in New Issue