Compare commits

..

No commits in common. "f6841deccec966aa1dc36ef9c2ce837d4342f2bc" and "1f37c53ab331a29e58f39461d9812964eded4081" have entirely different histories.

32 changed files with 113 additions and 191 deletions

View file

@ -1 +1 @@
better display of mute reason on posts better display of mutes

View file

@ -35,11 +35,11 @@ export default {
{ {
component: 'Root', component: 'Root',
directives: { directives: {
'--buttonDefaultHoverGlow': 'shadow | 0 0 1 2 --text / 0.4', '--buttonDefaultHoverGlow': 'shadow | 0 0 4 --text / 0.5',
'--buttonDefaultFocusGlow': 'shadow | 0 0 1 2 --link / 0.5', '--buttonDefaultFocusGlow': 'shadow | 0 0 4 4 --link / 0.5',
'--buttonDefaultShadow': 'shadow | 0 0 2 #000000', '--buttonDefaultShadow': 'shadow | 0 0 2 #000000',
'--buttonDefaultBevel': 'shadow | $borderSide(#FFFFFF top 0.2 1), $borderSide(#000000 bottom 0.2 1)', '--buttonDefaultBevel': 'shadow | $borderSide(#FFFFFF top 0.2 2), $borderSide(#000000 bottom 0.2 2)',
'--buttonPressedBevel': 'shadow | inset 0 0 4 #000000, $borderSide(#FFFFFF bottom 0.2 1), $borderSide(#000000 top 0.2 1)' '--buttonPressedBevel': 'shadow | $borderSide(#FFFFFF bottom 0.2 2), $borderSide(#000000 top 0.2 2)'
} }
}, },
{ {
@ -78,28 +78,28 @@ export default {
{ {
state: ['toggled'], state: ['toggled'],
directives: { directives: {
background: '--accent,-24.2', background: '--inheritedBackground,-14.2',
shadow: ['--buttonDefaultShadow', '--buttonPressedBevel'] shadow: ['--buttonDefaultShadow', '--buttonPressedBevel']
} }
}, },
{ {
state: ['toggled', 'hover'], state: ['toggled', 'hover'],
directives: { directives: {
background: '--accent,-24.2', background: '--inheritedBackground,-14.2',
shadow: ['--buttonDefaultHoverGlow', '--buttonPressedBevel'] shadow: ['--buttonDefaultHoverGlow', '--buttonPressedBevel']
} }
}, },
{ {
state: ['toggled', 'disabled'], state: ['toggled', 'disabled'],
directives: { directives: {
background: '$blend(--accent 0.25 --parent)', background: '$blend(--inheritedBackground 0.25 --parent)',
shadow: ['--buttonPressedBevel'] shadow: ['--buttonPressedBevel']
} }
}, },
{ {
state: ['disabled'], state: ['disabled'],
directives: { directives: {
background: '$blend(--accent 0.25 --parent)', background: '$blend(--inheritedBackground 0.25 --parent)',
shadow: ['--buttonDefaultBevel'] shadow: ['--buttonDefaultBevel']
} }
}, },

View file

@ -66,6 +66,7 @@ const ChatMessage = {
return this.message.attachments.length > 0 return this.message.attachments.length > 0
}, },
...mapState({ ...mapState({
betterShadow: state => state.interface.browserSupport.cssFilter,
currentUser: state => state.users.currentUser, currentUser: state => state.users.currentUser,
restrictedNicknames: state => state.instance.restrictedNicknames restrictedNicknames: state => state.instance.restrictedNicknames
}), }),

View file

@ -20,6 +20,7 @@
> >
<UserAvatar <UserAvatar
:compact="true" :compact="true"
:better-shadow="betterShadow"
:user="author" :user="author"
/> />
</UserPopover> </UserPopover>

View file

@ -8,11 +8,6 @@ const DialogModal = {
default: () => {}, default: () => {},
type: Function type: Function
} }
},
computed: {
mobileCenter () {
return this.$store.getters.mergedConfig.modalMobileCenter
}
} }
} }

View file

@ -1,7 +1,7 @@
<template> <template>
<span <span
class="dialog-container" class="dialog-container"
:class="{ 'dark-overlay': darkOverlay, '-center-mobile': mobileCenter }" :class="{ 'dark-overlay': darkOverlay }"
@click.self.stop="onCancel()" @click.self.stop="onCancel()"
> >
<div <div
@ -79,7 +79,6 @@
padding: 0.5em; padding: 0.5em;
border-top: 1px solid var(--border); border-top: 1px solid var(--border);
display: grid; display: grid;
justify-content: end;
grid-gap: 0.5em; grid-gap: 0.5em;
grid-template-columns: min-content; grid-template-columns: min-content;
grid-auto-columns: min-content; grid-auto-columns: min-content;
@ -100,10 +99,6 @@
justify-content: stretch; justify-content: stretch;
align-items: end; align-items: end;
justify-items: stretch; justify-items: stretch;
&.-center-mobile {
align-items: center;
}
} }
.dialog-modal.panel { .dialog-modal.panel {

View file

@ -64,12 +64,12 @@
<div v-if="editing"> <div v-if="editing">
<PostStatusForm <PostStatusForm
v-if="draft.type !== 'edit'" v-if="draft.type !== 'edit'"
:hide-draft="true" :disable-draft="true"
v-bind="postStatusFormProps" v-bind="postStatusFormProps"
/> />
<EditStatusForm <EditStatusForm
v-else v-else
:hide-draft="true" :disable-draft="true"
:params="postStatusFormProps" :params="postStatusFormProps"
/> />
</div> </div>

View file

@ -15,7 +15,6 @@
class="panel-body" class="panel-body"
:params="params" :params="params"
@posted="doCloseModal" @posted="doCloseModal"
@draft-done="doCloseModal"
@can-close="doCloseModal" @can-close="doCloseModal"
/> />
</div> </div>

View file

@ -99,6 +99,11 @@
display: inline-flex; display: inline-flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
&.-picked-reaction {
border: 1px solid var(--accent);
margin-right: -1px;
}
} }
} }
} }
@ -149,6 +154,10 @@
} }
&.-picked-reaction { &.-picked-reaction {
border: 1px solid var(--accent);
margin-left: -1px; // offset the border, can't use inset shadows either
margin-right: -1px;
.svg-inline--fa { .svg-inline--fa {
color: var(--accent); color: var(--accent);
} }

View file

@ -5,22 +5,18 @@
:for="manualEntry ? name : name + '-font-switcher'" :for="manualEntry ? name : name + '-font-switcher'"
class="label" class="label"
> >
{{ $t('settings.style.themes3.font.label', { label }) }} {{ label }}
</label> </label>
{{ ' ' }} {{ ' ' }}
<Checkbox <Checkbox
v-if="typeof fallback !== 'undefined'" v-if="typeof fallback !== 'undefined'"
class="font-checkbox"
:id="name + '-o'" :id="name + '-o'"
:model-value="present" :model-value="present"
@change="$emit('update:modelValue', typeof modelValue === 'undefined' ? fallback : undefined)" @change="$emit('update:modelValue', typeof modelValue === 'undefined' ? fallback : undefined)"
> >
{{ $t('settings.style.themes3.define') }} {{ $t('settings.style.themes3.define') }}
</Checkbox> </Checkbox>
<div <p v-if="modelValue?.family">
v-if="modelValue?.family"
class="font-input"
>
<label <label
v-if="manualEntry" v-if="manualEntry"
:id="name + '-label'" :id="name + '-label'"
@ -126,7 +122,7 @@
</optgroup> </optgroup>
</Select> </Select>
</span> </span>
</div> </p>
</div> </div>
</template> </template>
@ -138,15 +134,6 @@
min-width: 20em; min-width: 20em;
max-width: 20em; max-width: 20em;
} }
.font-input {
margin-left: 2em;
margin-top: 0.5em;
}
.font-checkbox {
margin-left: 1em;
}
} }
.invalid-tooltip { .invalid-tooltip {

View file

@ -18,7 +18,7 @@ export default {
{ {
component: 'Root', component: 'Root',
directives: { directives: {
'--defaultInputBevel': 'shadow | $borderSide(#FFFFFF bottom 0.2), $borderSide(#000000 top 0.2), inset 0 0 2 #000000 / 0.15', '--defaultInputBevel': 'shadow | $borderSide(#FFFFFF bottom 0.2), $borderSide(#000000 top 0.2)',
'--defaultInputHoverGlow': 'shadow | 0 0 4 --text / 0.5', '--defaultInputHoverGlow': 'shadow | 0 0 4 --text / 0.5',
'--defaultInputFocusGlow': 'shadow | 0 0 4 4 --link / 0.5' '--defaultInputFocusGlow': 'shadow | 0 0 4 4 --link / 0.5'
} }

View file

@ -43,6 +43,7 @@ const Notification = {
data () { data () {
return { return {
statusExpanded: false, statusExpanded: false,
betterShadow: this.$store.state.interface.browserSupport.cssFilter,
unmuted: false, unmuted: false,
showingApproveConfirmDialog: false, showingApproveConfirmDialog: false,
showingDenyConfirmDialog: false showingDenyConfirmDialog: false

View file

@ -48,6 +48,7 @@
<UserAvatar <UserAvatar
class="post-avatar" class="post-avatar"
:compact="true" :compact="true"
:better-shadow="betterShadow"
:user="notification.from_profile" :user="notification.from_profile"
/> />
</UserPopover> </UserPopover>

View file

@ -38,20 +38,12 @@ export default {
roundness: 3, roundness: 3,
blur: '5px', blur: '5px',
shadow: [{ shadow: [{
x: 0, x: 1,
y: 0, y: 1,
blur: 3, blur: 4,
spread: 0, spread: 0,
color: '#000000', color: '#000000',
alpha: 0.5 alpha: 0.6
},
{
x: 0,
y: 4,
blur: 6,
spread: 3,
color: '#000000',
alpha: 0.3
}] }]
} }
} }

View file

@ -17,23 +17,7 @@ export default {
directives: { directives: {
backgroundNoCssColor: 'yes', backgroundNoCssColor: 'yes',
background: '--fg', background: '--fg',
shadow: [{ shadow: []
x: 0,
y: 1,
blur: 3,
spread: 0,
color: '#000000',
alpha: 0.4
},
{
x: 0,
y: 1,
blur: 0,
spread: 0,
color: '#ffffff',
alpha: 0.2,
inset: true
}]
} }
} }
] ]

View file

@ -101,8 +101,6 @@ const PostStatusForm = {
'disableSubmit', 'disableSubmit',
'disablePreview', 'disablePreview',
'disableDraft', 'disableDraft',
'hideDraft',
'closeable',
'placeholder', 'placeholder',
'maxHeight', 'maxHeight',
'postHandler', 'postHandler',
@ -117,7 +115,6 @@ const PostStatusForm = {
], ],
emits: [ emits: [
'posted', 'posted',
'draft-done',
'resize', 'resize',
'mediaplay', 'mediaplay',
'mediapause', 'mediapause',
@ -235,9 +232,6 @@ const PostStatusForm = {
showAllScopes () { showAllScopes () {
return !this.mergedConfig.minimalScopesMode return !this.mergedConfig.minimalScopesMode
}, },
hideExtraActions () {
return this.disableDraft || this.hideDraft
},
emojiUserSuggestor () { emojiUserSuggestor () {
return suggestor({ return suggestor({
emoji: [ emoji: [
@ -359,12 +353,10 @@ const PostStatusForm = {
} }
}, },
safeToSaveDraft () { safeToSaveDraft () {
return ( return this.newStatus.status ||
this.newStatus.status ||
this.newStatus.spoilerText || this.newStatus.spoilerText ||
this.newStatus.files?.length || this.newStatus.files?.length ||
this.newStatus.hasPoll this.newStatus.hasPoll
) && this.saveable
}, },
...mapGetters(['mergedConfig']), ...mapGetters(['mergedConfig']),
...mapState({ ...mapState({
@ -768,20 +760,12 @@ const PostStatusForm = {
this.newStatus.id = id this.newStatus.id = id
} }
this.saveable = false this.saveable = false
this.clearStatus()
if (!this.shouldAutoSaveDraft) {
this.$emit('draft-done')
}
}) })
} else if (this.newStatus.id) { } else if (this.newStatus.id) {
// There is a draft, but there is nothing in it, clear it // There is a draft, but there is nothing in it, clear it
return this.abandonDraft() return this.abandonDraft()
.then(() => { .then(() => {
this.saveable = false this.saveable = false
this.clearStatus()
if (!this.shouldAutoSaveDraft) {
this.$emit('draft-done')
}
}) })
} }
} }

View file

@ -316,12 +316,13 @@
</template> </template>
</button> </button>
<Popover <Popover
v-if="!hideExtraActions" v-if="!disableDraft"
class="more-post-actions" class="more-post-actions"
:normal-button="true" :normal-button="true"
trigger="click" trigger="click"
placement="bottom" placement="bottom"
:offset="{ y: 5 }" :offset="{ y: 5 }"
:bound-to="{ x: 'container' }"
> >
<template #trigger> <template #trigger>
<FAIcon <FAIcon
@ -335,20 +336,15 @@
role="menu" role="menu"
> >
<button <button
v-if="!hideDraft || !disableDraft" v-if="!disableDraft"
class="menu-item dropdown-item dropdown-item-icon" class="menu-item dropdown-item dropdown-item-icon"
role="menu" role="menu"
:disabled="!safeToSaveDraft && saveable" :disabled="!safeToSaveDraft"
:class="{ disabled: !safeToSaveDraft }" :class="{ disabled: !safeToSaveDraft }"
@click.prevent="saveDraft" @click.prevent="saveDraft"
@click="close" @click="close"
> >
<template v-if="closeable"> {{ $t('post_status.save_to_drafts_button') }}
{{ $t('post_status.save_to_drafts_and_close_button') }}
</template>
<template v-else>
{{ $t('post_status.save_to_drafts_button') }}
</template>
</button> </button>
</div> </div>
</template> </template>

View file

@ -14,9 +14,7 @@
<PostStatusForm <PostStatusForm
class="panel-body" class="panel-body"
v-bind="params" v-bind="params"
:closeable="true"
@posted="resetAndClose" @posted="resetAndClose"
@draft-done="resetAndClose"
/> />
</div> </div>
</Modal> </Modal>

View file

@ -57,7 +57,7 @@
:key="style.key" :key="style.key"
:data-theme-key="style.key" :data-theme-key="style.key"
class="button-default theme-preview" class="button-default theme-preview"
:class="{ toggled: isThemeActive(style.key), disabled: switchInProgress }" :class="{ toggled: isStyleActive(style.key), disabled: switchInProgress }"
@click="style.version === 'v2' ? setTheme(style.key) : setStyle(style.key)" @click="style.version === 'v2' ? setTheme(style.key) : setStyle(style.key)"
:disabled="switchInProgress" :disabled="switchInProgress"
> >
@ -206,6 +206,51 @@
</small> </small>
</div> </div>
</li> </li>
<li>
<h3>{{ $t('settings.style.interface_font_user_override') }}</h3>
<ul class="setting-list">
<li>
<FontControl
:model-value="mergedConfig.theme3hacks.fonts.interface"
name="ui"
:label="$t('settings.style.fonts.components.interface')"
:fallback="{ family: 'sans-serif' }"
no-inherit="1"
@update:modelValue="v => updateFont('interface', v)"
/>
</li>
<li>
<FontControl
v-if="expertLevel > 0"
:model-value="mergedConfig.theme3hacks.fonts.input"
name="input"
:fallback="{ family: 'inherit' }"
:label="$t('settings.style.fonts.components.input')"
@update:modelValue="v => updateFont('input', v)"
/>
</li>
<li>
<FontControl
v-if="expertLevel > 0"
:model-value="mergedConfig.theme3hacks.fonts.post"
name="post"
:fallback="{ family: 'inherit' }"
:label="$t('settings.style.fonts.components.post')"
@update:modelValue="v => updateFont('post', v)"
/>
</li>
<li>
<FontControl
v-if="expertLevel > 0"
:model-value="mergedConfig.theme3hacks.fonts.monospace"
name="postCode"
:fallback="{ family: 'monospace' }"
:label="$t('settings.style.fonts.components.monospace')"
@update:modelValue="v => updateFont('monospace', v)"
/>
</li>
</ul>
</li>
<li> <li>
<UnitSetting <UnitSetting
path="emojiSize" path="emojiSize"
@ -239,47 +284,6 @@
{{ $t('settings.navbar_size') }} {{ $t('settings.navbar_size') }}
</UnitSetting> </UnitSetting>
</li> </li>
<h3>{{ $t('settings.style.interface_font_user_override') }}</h3>
<li>
<FontControl
:model-value="mergedConfig.theme3hacks.fonts.interface"
name="ui"
:label="$t('settings.style.fonts.components.interface')"
:fallback="{ family: 'sans-serif' }"
no-inherit="1"
@update:modelValue="v => updateFont('interface', v)"
/>
</li>
<li>
<FontControl
v-if="expertLevel > 0"
:model-value="mergedConfig.theme3hacks.fonts.input"
name="input"
:fallback="{ family: 'inherit' }"
:label="$t('settings.style.fonts.components.input')"
@update:modelValue="v => updateFont('input', v)"
/>
</li>
<li>
<FontControl
v-if="expertLevel > 0"
:model-value="mergedConfig.theme3hacks.fonts.post"
name="post"
:fallback="{ family: 'inherit' }"
:label="$t('settings.style.fonts.components.post')"
@update:modelValue="v => updateFont('post', v)"
/>
</li>
<li>
<FontControl
v-if="expertLevel > 0"
:model-value="mergedConfig.theme3hacks.fonts.monospace"
name="postCode"
:fallback="{ family: 'monospace' }"
:label="$t('settings.style.fonts.components.monospace')"
@update:modelValue="v => updateFont('monospace', v)"
/>
</li>
<h3>{{ $t('settings.columns') }}</h3> <h3>{{ $t('settings.columns') }}</h3>
<li> <li>
<UnitSetting <UnitSetting
@ -341,11 +345,6 @@
<div class="setting-item"> <div class="setting-item">
<h2>{{ $t('settings.visual_tweaks') }}</h2> <h2>{{ $t('settings.visual_tweaks') }}</h2>
<ul class="setting-list"> <ul class="setting-list">
<li>
<BooleanSetting path="modalMobileCenter">
{{ $t('settings.mobile_center_dialog') }}
</BooleanSetting>
</li>
<li> <li>
<ChoiceSetting <ChoiceSetting
id="forcedRoundness" id="forcedRoundness"

View file

@ -288,6 +288,7 @@ const Status = {
case 'nsfw': return this.$t('status.sensitive_muted') case 'nsfw': return this.$t('status.sensitive_muted')
} }
} }
console.log(this.muteReasons, mainReason())
return this.$t( return this.$t(
'status.multi_reason_mute', 'status.multi_reason_mute',
{ {
@ -416,6 +417,9 @@ const Status = {
currentUser () { currentUser () {
return this.$store.state.users.currentUser return this.$store.state.users.currentUser
}, },
betterShadow () {
return this.$store.state.interface.browserSupport.cssFilter
},
mergedConfig () { mergedConfig () {
return this.$store.getters.mergedConfig return this.$store.getters.mergedConfig
}, },

View file

@ -65,6 +65,7 @@
v-if="retweet" v-if="retweet"
class="left-side repeater-avatar" class="left-side repeater-avatar"
:show-actor-type-indicator="showActorTypeIndicator" :show-actor-type-indicator="showActorTypeIndicator"
:better-shadow="betterShadow"
:user="statusoid.user" :user="statusoid.user"
/> />
<div class="right-side faint"> <div class="right-side faint">
@ -119,6 +120,7 @@
class="post-avatar" class="post-avatar"
:show-actor-type-indicator="showActorTypeIndicator" :show-actor-type-indicator="showActorTypeIndicator"
:compact="compact" :compact="compact"
:better-shadow="betterShadow"
:user="status.user" :user="status.user"
/> />
</UserPopover> </UserPopover>
@ -598,14 +600,12 @@
<PostStatusForm <PostStatusForm
ref="postStatusForm" ref="postStatusForm"
class="reply-body" class="reply-body"
:closeable="true"
:reply-to="status.id" :reply-to="status.id"
:attentions="status.attentions" :attentions="status.attentions"
:replied-user="status.user" :replied-user="status.user"
:copy-message-scope="status.visibility" :copy-message-scope="status.visibility"
:subject="replySubject" :subject="replySubject"
@posted="doToggleReplying" @posted="doToggleReplying"
@draft-done="doToggleReplying"
@can-close="doToggleReplying" @can-close="doToggleReplying"
/> />
</div> </div>

View file

@ -16,19 +16,11 @@ export default {
background: '--fg', background: '--fg',
shadow: [{ shadow: [{
x: 0, x: 0,
y: 1, y: 0,
blur: 4, blur: 4,
spread: 0, spread: 0,
color: '#000000', color: '#000000',
alpha: 0.4 alpha: 0.6
},
{
x: 0,
y: 2,
blur: 7,
spread: 0,
color: '#000000',
alpha: 0.3
}] }]
} }
}, },

View file

@ -11,10 +11,10 @@ export default {
shadow: [{ shadow: [{
x: 0, x: 0,
y: 1, y: 1,
blur: 4, blur: 8,
spread: 0, spread: 0,
color: '#000000', color: '#000000',
alpha: 0.2 alpha: 0.7
}] }]
} }
} }

View file

@ -15,14 +15,14 @@ library.add(
const UserAvatar = { const UserAvatar = {
props: [ props: [
'user', 'user',
'betterShadow',
'compact', 'compact',
'showActorTypeIndicator' 'showActorTypeIndicator'
], ],
data () { data () {
return { return {
showPlaceholder: false, showPlaceholder: false,
defaultAvatar: `${this.$store.state.instance.server + this.$store.state.instance.defaultAvatar}`, defaultAvatar: `${this.$store.state.instance.server + this.$store.state.instance.defaultAvatar}`
betterShadow: this.$store.state.interface.browserSupport.cssFilter
} }
}, },
components: { components: {

View file

@ -48,6 +48,7 @@ export default {
data () { data () {
return { return {
followRequestInProgress: false, followRequestInProgress: false,
betterShadow: this.$store.state.interface.browserSupport.cssFilter,
showingConfirmMute: false, showingConfirmMute: false,
muteExpiryAmount: 0, muteExpiryAmount: 0,
muteExpiryUnit: 'minutes' muteExpiryUnit: 'minutes'

View file

@ -16,7 +16,10 @@
class="user-info-avatar -link" class="user-info-avatar -link"
@click="zoomAvatar" @click="zoomAvatar"
> >
<UserAvatar :user="user" /> <UserAvatar
:better-shadow="betterShadow"
:user="user"
/>
<div class="user-info-avatar -link -overlay"> <div class="user-info-avatar -link -overlay">
<FAIcon <FAIcon
class="fa-scale-110 fa-old-padding" class="fa-scale-110 fa-old-padding"
@ -27,6 +30,7 @@
<UserAvatar <UserAvatar
v-else-if="typeof avatarAction === 'function'" v-else-if="typeof avatarAction === 'function'"
class="user-info-avatar" class="user-info-avatar"
:better-shadow="betterShadow"
:user="user" :user="user"
@click="avatarAction" @click="avatarAction"
/> />
@ -34,7 +38,10 @@
v-else v-else
:to="userProfileLink(user)" :to="userProfileLink(user)"
> >
<UserAvatar :user="user" /> <UserAvatar
:better-shadow="betterShadow"
:user="user"
/>
</router-link> </router-link>
<div class="user-summary"> <div class="user-summary">
<div class="top-line"> <div class="top-line">

View file

@ -321,8 +321,7 @@
"auto_save_nothing_new": "Nothing new to save.", "auto_save_nothing_new": "Nothing new to save.",
"auto_save_saved": "Saved.", "auto_save_saved": "Saved.",
"auto_save_saving": "Saving...", "auto_save_saving": "Saving...",
"save_to_drafts_button": "Save to drafts", "save_to_drafts_button": "Save to drafts"
"save_to_drafts_and_close_button": "Save to drafts and close"
}, },
"registration": { "registration": {
"bio_optional": "Bio (optional)", "bio_optional": "Bio (optional)",
@ -382,7 +381,6 @@
"actor_type_Person": "a normal user", "actor_type_Person": "a normal user",
"actor_type_Service": "a bot", "actor_type_Service": "a bot",
"actor_type_Group": "a group", "actor_type_Group": "a group",
"mobile_center_dialog": "Vertically center dialogs on mobile",
"app_name": "App name", "app_name": "App name",
"expert_mode": "Show advanced", "expert_mode": "Show advanced",
"save": "Save changes", "save": "Save changes",
@ -869,8 +867,7 @@
"lookup_local_fonts": "Load list of fonts installed on this computer", "lookup_local_fonts": "Load list of fonts installed on this computer",
"enter_manually": "Enter font name family manually", "enter_manually": "Enter font name family manually",
"entry": "Enter {fontFamily}", "entry": "Enter {fontFamily}",
"select": "Select font", "select": "Select font"
"label": "{label} font"
} }
}, },
"interface_font_user_override": "Override theme/browser font used", "interface_font_user_override": "Override theme/browser font used",
@ -1246,7 +1243,7 @@
"status_unavailable": "Status unavailable", "status_unavailable": "Status unavailable",
"copy_link": "Copy link to status", "copy_link": "Copy link to status",
"external_source": "External source", "external_source": "External source",
"muted_words": "Wordfiltered: {word} | Wordfiltered: {word} and {numWordsMore} more words", "muted_words": "Wordfiltered: {word} | Wordfiltered: {word} and {numWordsMore} more word",
"multi_reason_mute": "{main} | {main} + one more reason | {main} + {numReasonsMore} more reasons", "multi_reason_mute": "{main} | {main} + one more reason | {main} + {numReasonsMore} more reasons",
"thread_muted": "Thread muted", "thread_muted": "Thread muted",
"thread_muted_and_words": ", has words:", "thread_muted_and_words": ", has words:",

View file

@ -142,7 +142,6 @@ export const defaultState = {
modalOnApproveFollow: undefined, // instance default modalOnApproveFollow: undefined, // instance default
modalOnDenyFollow: undefined, // instance default modalOnDenyFollow: undefined, // instance default
modalOnRemoveUserFromFollowers: undefined, // instance default modalOnRemoveUserFromFollowers: undefined, // instance default
modalMobileCenter: undefined,
playVideosInModal: false, playVideosInModal: false,
useOneClickNsfw: false, useOneClickNsfw: false,
useContainFit: true, useContainFit: true,

View file

@ -82,7 +82,6 @@ const defaultState = {
modalOnApproveFollow: false, modalOnApproveFollow: false,
modalOnDenyFollow: false, modalOnDenyFollow: false,
modalOnRemoveUserFromFollowers: false, modalOnRemoveUserFromFollowers: false,
modalMobileCenter: false,
loginMethod: 'password', loginMethod: 'password',
logo: '/static/logo.svg', logo: '/static/logo.svg',
logoMargin: '.2em', logoMargin: '.2em',

View file

@ -81,27 +81,9 @@ export const colorFunctions = {
return alphaBlend(background, amount, foreground) return alphaBlend(background, amount, foreground)
} }
}, },
boost: {
argsNeeded: 2,
documentation: 'If given color is dark makes it darker, if color is light - makes it lighter',
args: [
'color: source color',
'amount: how much darken/brighten the color'
],
exec: (args, { findColor }, { dynamicVars, staticVars }) => {
const [colorArg, amountArg] = args
const color = convert(findColor(colorArg, { dynamicVars, staticVars })).rgb
const amount = Number(amountArg)
const isLight = relativeLuminance(color) < 0.5
const mod = isLight ? -1 : 1
return brightness(amount * mod, color).rgb
}
},
mod: { mod: {
argsNeeded: 2, argsNeeded: 2,
documentation: 'Old function that increases or decreases brightness depending if background color is dark or light. Advised against using it as it might give unexpected results.', documentation: 'Old function that increases or decreases brightness depending if color is dark or light. Advised against using it as it might give unexpected results.',
args: [ args: [
'color: source color', 'color: source color',
'amount: how much darken/brighten the color' 'amount: how much darken/brighten the color'
@ -127,7 +109,6 @@ export const shadowFunctions = {
args: [ args: [
'color: border color', 'color: border color',
'side: string indicating on which side border should be, takes either one word or two words joined by dash (i.e. "left" or "bottom-right")', 'side: string indicating on which side border should be, takes either one word or two words joined by dash (i.e. "left" or "bottom-right")',
'width: border width (thickness)',
'[alpha]: (Optional) border opacity, defaults to 1 (fully opaque)', '[alpha]: (Optional) border opacity, defaults to 1 (fully opaque)',
'[inset]: (Optional) whether border should be on the inside or outside, defaults to inside' '[inset]: (Optional) whether border should be on the inside or outside, defaults to inside'
], ],

View file

@ -94,7 +94,7 @@ Button:toggled:pressed {
} }
Input { Input {
background: $boost(--bg 20); background: $mod(--bg -80);
shadow: --defaultInputBevel; shadow: --defaultInputBevel;
roundness: 0 roundness: 0
} }