diff --git a/changelog.d/color-schemes.add b/changelog.d/color-schemes.add new file mode 100644 index 000000000..5410730e1 --- /dev/null +++ b/changelog.d/color-schemes.add @@ -0,0 +1 @@ +Some new default color schemes diff --git a/src/components/button_unstyled.style.js b/src/components/button_unstyled.style.js index a4f0f6f99..4142f9a3c 100644 --- a/src/components/button_unstyled.style.js +++ b/src/components/button_unstyled.style.js @@ -10,14 +10,13 @@ export default { }, validInnerComponents: [ 'Text', + 'Link', 'Icon', 'Badge' ], defaultRules: [ { directives: { - background: '#ffffff', - opacity: 0, shadow: [] } }, diff --git a/src/components/desktop_nav/desktop_nav.scss b/src/components/desktop_nav/desktop_nav.scss index 61d2541ca..0c094ce28 100644 --- a/src/components/desktop_nav/desktop_nav.scss +++ b/src/components/desktop_nav/desktop_nav.scss @@ -6,10 +6,6 @@ color: var(--inputTopbarText, var(--inputText)); } - a { - color: var(--link); - } - .inner-nav { display: grid; grid-template-rows: var(--navbar-height); @@ -91,10 +87,6 @@ width: 2em; height: 100%; text-align: center; - - .svg-inline--fa { - color: var(--link); - } } .sitename { diff --git a/src/components/emoji_reactions/emoji_reactions.js b/src/components/emoji_reactions/emoji_reactions.js index dd5577bda..77f8ecbb2 100644 --- a/src/components/emoji_reactions/emoji_reactions.js +++ b/src/components/emoji_reactions/emoji_reactions.js @@ -87,7 +87,10 @@ const EmojiReactions = { 'btn', 'button-default', 'emoji-reaction-count-button', - { '-picked-reaction': this.reactedWith(reaction.name) } + { + '-picked-reaction': this.reactedWith(reaction.name), + toggled: this.reactedWith(reaction.name) + } ], 'aria-label': this.$tc('status.reaction_count_label', reaction.count, { num: reaction.count }) } diff --git a/src/components/emoji_reactions/emoji_reactions.vue b/src/components/emoji_reactions/emoji_reactions.vue index 75e021104..7b9944d18 100644 --- a/src/components/emoji_reactions/emoji_reactions.vue +++ b/src/components/emoji_reactions/emoji_reactions.vue @@ -10,7 +10,7 @@ v-bind="!loggedIn ? { href: remoteInteractionLink } : {}" role="button" class="emoji-reaction btn button-default" - :class="{ '-picked-reaction': reactedWith(reaction.name) }" + :class="{ '-picked-reaction': reactedWith(reaction.name), toggled: reactedWith(reaction.name) }" :title="reaction.url ? reaction.name : undefined" :aria-pressed="reactedWith(reaction.name)" @click="emojiOnClick(reaction.name, $event)" diff --git a/src/components/palette_editor/palette_editor.vue b/src/components/palette_editor/palette_editor.vue index e5ae2000f..3d43b7464 100644 --- a/src/components/palette_editor/palette_editor.vue +++ b/src/components/palette_editor/palette_editor.vue @@ -30,6 +30,8 @@ v-if="apply" class="btn button-default palette-apply-button" @click="applyPalette" + :disabled="disabled" + :class="{ disabled }" > {{ $t('settings.style.themes3.palette.apply') }} @@ -67,7 +69,7 @@ const paletteKeys = [ 'wallpaper' ] -const props = defineProps(['modelValue', 'compact', 'apply']) +const props = defineProps(['modelValue', 'compact', 'apply', 'disabled']) const emit = defineEmits(['update:modelValue', 'applyPalette']) const getExportedObject = () => paletteKeys.reduce((acc, key) => { const value = props.modelValue[key] diff --git a/src/components/root.style.js b/src/components/root.style.js index 25b2b6653..9ad614c78 100644 --- a/src/components/root.style.js +++ b/src/components/root.style.js @@ -3,6 +3,11 @@ export default { selector: ':root', notEditable: true, validInnerComponents: [ + // These are purely for --parent--text et such to work + 'Text', + 'Link', + 'Border', + 'Underlay', 'Modals', 'Popover', diff --git a/src/components/settings_modal/tabs/appearance_tab.js b/src/components/settings_modal/tabs/appearance_tab.js index 3d03af457..fe2001af5 100644 --- a/src/components/settings_modal/tabs/appearance_tab.js +++ b/src/components/settings_modal/tabs/appearance_tab.js @@ -43,7 +43,7 @@ const AppearanceTab = { bundledPalettes: [], compilationCache: {}, fileImporter: newImporter({ - accept: '.json, .piss', + accept: '.json, .iss', validator: this.importValidator, onImport: this.onImport, parser: this.importParser, @@ -186,6 +186,9 @@ const AppearanceTab = { } }, computed: { + switchInProgress () { + return this.$store.state.interface.themeChangeInProgress + }, paletteDataUsed () { return this.$store.state.interface.paletteDataUsed }, @@ -302,14 +305,14 @@ const AppearanceTab = { importParser (file, filename) { if (filename.endsWith('.json')) { return JSON.parse(file) - } else if (filename.endsWith('.piss')) { + } else if (filename.endsWith('.iss')) { return deserialize(file) } }, onImport (parsed, filename) { if (filename.endsWith('.json')) { this.$store.dispatch('setThemeCustom', parsed.source || parsed.theme) - } else if (filename.endsWith('.piss')) { + } else if (filename.endsWith('.iss')) { this.$store.dispatch('setStyleCustom', parsed) } }, @@ -321,7 +324,7 @@ const AppearanceTab = { if (filename.endsWith('.json')) { const version = parsed._pleroma_theme_version return version >= 1 || version <= 2 - } else if (filename.endsWith('.piss')) { + } else if (filename.endsWith('.iss')) { if (!Array.isArray(parsed)) return false if (parsed.length < 1) return false if (parsed.find(x => x.component === '@meta') == null) return false diff --git a/src/components/settings_modal/tabs/appearance_tab.scss b/src/components/settings_modal/tabs/appearance_tab.scss index 596c674fa..eff5438a7 100644 --- a/src/components/settings_modal/tabs/appearance_tab.scss +++ b/src/components/settings_modal/tabs/appearance_tab.scss @@ -20,26 +20,47 @@ } } + h4 { + margin: 0.5em 0; + } + + .palettes-container { + height: 15em; + overflow-y: auto; + overflow-x: hidden; + scrollbar-gutter: stable; + border-radius: var(--roundness); + border: 1px solid var(--border); + margin: -0.5em; + } + .palettes { display: grid; grid-template-columns: 1fr 1fr; grid-gap: 0.5em; + padding: 0.5em; + width: 100%; - h4, - .unsupported-theme-v2, - .userPalette { + h4 { + margin: 0; grid-column: 1 / span 2; } } .palette-entry { - display: flex; + display: grid; + grid-template-columns: 1fr auto; align-items: center; justify-content: space-between; padding: 0 0.5em; + height: max-content; - .palette-label label { - text-align: center; + .palette-label { + height: auto; + + label { + text-align: center; + } } .palette-square { @@ -63,23 +84,26 @@ } .modal-view.-mobile & { + .palettes { + grid-template-columns: 1fr; + } + .palette-entry { - flex-wrap: wrap; + grid-column: 1; justify-content: center; } .palette-label { line-height: 1.5em; margin-top: 0.5em; - width: 100%; } + } - .palette-preview { - display: grid; - grid-template-columns: 1fr 1fr 1fr 1fr; - grid-template-rows: 1em 1em; - margin-bottom: 0.5em; - } + .palette-preview { + display: grid; + grid-template-columns: 1fr 1fr 1fr 1fr; + grid-template-rows: 1em 1em; + margin: 0.5em 0; } .theme-list { diff --git a/src/components/settings_modal/tabs/appearance_tab.vue b/src/components/settings_modal/tabs/appearance_tab.vue index a44cc1a70..bda0ab144 100644 --- a/src/components/settings_modal/tabs/appearance_tab.vue +++ b/src/components/settings_modal/tabs/appearance_tab.vue @@ -12,8 +12,9 @@