feat: pride 2026 frontend (#6205)

* feat: pride 2026 banner app sidebar

* feat: use ProgressBar component

* feat: pride skins

* feat: pride skins

* feat: blog post

* fix: blogpost

* fix: pride skin condition

* fix: types

* fix: show logic

* fix: qa

* fix: lint

* fix: unused var
This commit is contained in:
Calum H.
2026-05-31 17:43:41 +01:00
committed by GitHub
parent 34b87991bc
commit 325926ad9b
31 changed files with 553 additions and 31 deletions
+19 -4
View File
@@ -84,6 +84,7 @@ import InstallToPlayModal from '@/components/ui/modal/InstallToPlayModal.vue'
import ModpackAlreadyInstalledModal from '@/components/ui/modal/ModpackAlreadyInstalledModal.vue'
import UpdateToPlayModal from '@/components/ui/modal/UpdateToPlayModal.vue'
import NavButton from '@/components/ui/NavButton.vue'
import PrideFundraiserBanner from '@/components/ui/PrideFundraiserBanner.vue'
import PromotionWrapper from '@/components/ui/PromotionWrapper.vue'
import QuickInstanceSwitcher from '@/components/ui/QuickInstanceSwitcher.vue'
import SplashScreen from '@/components/ui/SplashScreen.vue'
@@ -101,6 +102,7 @@ import { list } from '@/helpers/profile.js'
import { mergeUrlQuery, parseModrinthLink } from '@/helpers/project-links.ts'
import { get as getSettings, set as setSettings } from '@/helpers/settings.ts'
import { get_opening_command, initialize_state } from '@/helpers/state'
import { hasActivePride26Midas, hasMidasBadge } from '@/helpers/user-campaigns.ts'
import {
areUpdatesEnabled,
enqueueUpdateForInstallation,
@@ -134,6 +136,7 @@ const route = useRoute()
const APP_LEFT_NAV_WIDTH = '4rem'
const APP_SIDEBAR_WIDTH = 300
const INTERCOM_BUBBLE_DEFAULT_PADDING = 20
const PRIDE_FUNDRAISER_END_DATE = new Date('2026-07-01T00:00:00Z').getTime()
const credentials = ref()
const sidebarToggled = ref(true)
const unsubscribeSidebarToggle = themeStore.$subscribe(() => {
@@ -144,6 +147,9 @@ const forceSidebar = computed(
)
const sidebarVisible = computed(() => sidebarToggled.value || forceSidebar.value)
const hostingRouteActive = computed(() => route.path.startsWith('/hosting'))
const prideFundraiserEnabled = computed(
() => themeStore.getFeatureFlag('pride_fundraiser') && Date.now() < PRIDE_FUNDRAISER_END_DATE,
)
const hostingIntercomIdentityKey = computed(() => {
const rawServerId = route.params.id
const serverId = Array.isArray(rawServerId) ? rawServerId[0] : rawServerId
@@ -192,6 +198,12 @@ const tauriApiClient = new TauriModrinthClient({
],
})
provideModrinthClient(tauriApiClient)
const { data: authenticatedModrinthUser } = useQuery({
queryKey: computed(() => ['authenticated-user', 'campaigns', credentials.value?.user?.id]),
queryFn: () => tauriApiClient.labrinth.users_v3.getAuthenticated(),
enabled: () => !!credentials.value?.session,
retry: false,
})
providePageContext({
hierarchicalSidebarAvailable: ref(true),
showAds: ref(false),
@@ -676,12 +688,11 @@ async function logOut() {
await fetchCredentials()
}
const MIDAS_BITFLAG = 1 << 0
const hasPlus = computed(
() =>
credentials.value &&
credentials.value.user &&
(credentials.value.user.badges & MIDAS_BITFLAG) === MIDAS_BITFLAG,
!!credentials.value?.user &&
(hasMidasBadge(credentials.value.user) ||
hasActivePride26Midas(authenticatedModrinthUser.value?.campaigns?.pride_26)),
)
const showAd = computed(
@@ -1479,6 +1490,10 @@ provideAppUpdateDownloadProgress(appUpdateDownload)
<FriendsList :credentials="credentials" :sign-in="() => signIn()" />
</suspense>
</div>
<PrideFundraiserBanner
v-if="prideFundraiserEnabled"
class="p-4 border-0 border-b-[1px] border-[--brand-gradient-border] border-solid"
/>
<div v-if="news && news.length > 0" class="p-4 flex flex-col items-center">
<h3 class="text-base mb-4 text-primary font-medium m-0 text-left w-full">News</h3>
<div class="space-y-4 flex flex-col items-center w-full">
@@ -0,0 +1,123 @@
<script setup lang="ts">
import { CalendarIcon, UsersIcon, XIcon } from '@modrinth/assets'
import { injectModrinthClient, ProgressBar } from '@modrinth/ui'
import { useQuery } from '@tanstack/vue-query'
import { openUrl } from '@tauri-apps/plugin-opener'
import { computed, ref } from 'vue'
const DISMISSED_STORAGE_KEY = 'pride-fundraiser-2026-dismissed'
const client = injectModrinthClient()
const dismissed = ref(localStorage.getItem(DISMISSED_STORAGE_KEY) === 'true')
const { data: campaignInfo } = useQuery({
queryKey: ['campaign', 'pride-26'],
queryFn: () => client.labrinth.campaign_internal.getPride26(),
enabled: () => !dismissed.value,
staleTime: 15 * 60 * 1000,
refetchInterval: 15 * 60 * 1000,
retry: false,
})
const shouldShowBanner = computed(
() => !dismissed.value && Number(campaignInfo.value?.target_usd) > 0,
)
async function openPrideFundraiser() {
await openUrl('https://modrinth.com/pride')
}
function dismissBanner() {
dismissed.value = true
localStorage.setItem(DISMISSED_STORAGE_KEY, 'true')
}
function formatUsd(amount: string | number) {
return Number(amount).toLocaleString('en-US', {
style: 'currency',
currency: 'USD',
maximumFractionDigits: 0,
})
}
function daysLeft() {
return Math.max(
0,
Math.ceil((new Date('2026-07-01T00:00:00Z').getTime() - Date.now()) / (24 * 60 * 60 * 1000)),
)
}
</script>
<template>
<div v-if="shouldShowBanner && campaignInfo">
<section
role="link"
tabindex="0"
class="flex w-full cursor-pointer flex-col gap-3 rounded-xl border border-solid border-surface-5 bg-button-bg p-3 text-primary transition-[border-color,filter] hover:border-surface-6 hover:brightness-125 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-brand"
aria-label="Open Pride fundraiser"
@click="openPrideFundraiser"
@keydown.enter="openPrideFundraiser"
@keydown.space.prevent="openPrideFundraiser"
>
<div class="flex w-full items-center justify-between gap-2">
<h2 class="m-0 min-w-0 truncate text-base font-semibold text-contrast">
Pride Fundraiser 2026
</h2>
<button
type="button"
class="m-0 flex size-5 shrink-0 cursor-pointer items-center justify-center border-0 bg-transparent p-0 text-primary transition-colors hover:text-contrast focus-visible:text-contrast"
aria-label="Dismiss Pride fundraiser"
@click.stop="dismissBanner"
@keydown.stop
>
<XIcon aria-hidden="true" class="size-5" />
</button>
</div>
<div class="h-px w-full bg-surface-5" />
<div class="flex w-full flex-col gap-2.5">
<div class="flex items-end gap-1 whitespace-nowrap">
<span class="text-base font-semibold leading-5 text-contrast">
{{ formatUsd(campaignInfo.total_donations_usd) }}
</span>
<span class="text-xs font-medium leading-4">
of {{ formatUsd(campaignInfo.target_usd) }}
</span>
</div>
<ProgressBar
class="pride-fundraiser-banner__progress"
:progress="Number(campaignInfo.total_donations_usd)"
:max="Number(campaignInfo.target_usd)"
color="purple"
full-width
:gradient-border="false"
:aria-label="`${formatUsd(campaignInfo.total_donations_usd)} of ${formatUsd(
campaignInfo.target_usd,
)} raised`"
/>
<div class="flex flex-wrap items-center gap-2 text-xs font-medium leading-4">
<span class="flex items-center gap-1">
<UsersIcon aria-hidden="true" class="size-4 shrink-0" />
{{ campaignInfo.num_donators.toLocaleString('en-US') }}
{{ campaignInfo.num_donators === 1 ? 'supporter' : 'supporters' }}
</span>
<span class="flex items-center gap-1">
<CalendarIcon aria-hidden="true" class="size-4 shrink-0" />
{{ daysLeft() }} {{ daysLeft() === 1 ? 'day left' : 'days left' }}
</span>
</div>
</div>
</section>
</div>
</template>
<style scoped>
.pride-fundraiser-banner__progress :deep(.progress-bar) {
background: linear-gradient(
90deg,
var(--color-red) 0%,
var(--color-orange) 20%,
var(--color-green) 50%,
var(--color-blue) 75%,
var(--color-purple) 100%
);
}
</style>
@@ -393,7 +393,6 @@ const messages = defineMessages({
<FriendsSection
v-if="pendingFriends.length > 0"
:is-searching="!!search"
open-by-default
:friends="pendingFriends"
:heading="formatMessage(messages.pending)"
:remove-friend="removeFriend"
@@ -1,5 +1,5 @@
<script setup lang="ts">
import { DropdownIcon, EditIcon, PlusIcon, TrashIcon } from '@modrinth/assets'
import { DropdownIcon, EditIcon, PlusIcon, TrashIcon, UnknownIcon } from '@modrinth/assets'
import {
Accordion,
ButtonStyled,
@@ -11,6 +11,7 @@ import {
useVIntl,
} from '@modrinth/ui'
import { useElementSize, useWindowSize } from '@vueuse/core'
import { Tooltip } from 'floating-vue'
import { computed, nextTick, onUnmounted, ref, useTemplateRef, watch } from 'vue'
import type { RenderResult } from '@/helpers/rendering/batch-skin-renderer.ts'
@@ -24,6 +25,7 @@ type AddSkinButtonRef = SkinLikeTextButtonExpose | SkinLikeTextButtonExpose[]
interface DefaultSkinSection {
title: string
infoTooltip?: string
skins: Skin[]
}
@@ -31,6 +33,7 @@ interface SkinSection {
key: string
title: string
kind: SkinSectionKind
infoTooltip?: string
skins: Skin[]
}
@@ -145,6 +148,7 @@ const sections = computed<SkinSection[]>(() => [
key: defaultSkinSectionKey(section.title),
title: section.title,
kind: 'default' as const,
infoTooltip: section.infoTooltip,
skins: section.skins,
})),
])
@@ -330,6 +334,24 @@ defineExpose({ getAddSkinButtonElement })
<span class="min-w-0 text-xl font-semibold leading-7 text-primary">
{{ section.title }}
</span>
<Tooltip
v-if="section.infoTooltip"
theme="dismissable-prompt"
placement="top"
:triggers="['hover', 'focus']"
>
<span
class="inline-flex size-6 shrink-0 items-center justify-center text-secondary transition-colors group-hover:text-primary"
@click.stop
>
<UnknownIcon class="size-5" />
</span>
<template #popper>
<p class="m-0 max-w-96 text-wrap text-sm font-medium leading-tight">
{{ section.infoTooltip }}
</p>
</template>
</Tooltip>
</template>
<div
@@ -0,0 +1,23 @@
import type { Labrinth } from '@modrinth/api-client'
const MIDAS_BITFLAG = 1 << 0
const PRIDE_26_MIDAS_DURATION_MS = 30 * 24 * 60 * 60 * 1000
type Pride26Campaign = Labrinth.Users.v3.Pride26CampaignDonation | null | undefined
export function hasMidasBadge(user?: { badges?: number } | null) {
return !!user?.badges && (user.badges & MIDAS_BITFLAG) === MIDAS_BITFLAG
}
export function hasPride26Badge(campaign: Pride26Campaign) {
return campaign?.has_badge === true
}
export function hasActivePride26Midas(campaign: Pride26Campaign, now = Date.now()) {
if (campaign?.has_midas !== true) {
return false
}
const donatedAt = new Date(campaign.last_donated_at).getTime()
return Number.isFinite(donatedAt) && donatedAt + PRIDE_26_MIDAS_DURATION_MS > now
}
@@ -431,6 +431,15 @@
"app.skins.section.minecon-earth-2017": {
"message": "MINECON Earth 2017"
},
"app.skins.section.modrinth": {
"message": "Modrinth"
},
"app.skins.section.modrinth-pride": {
"message": "Modrinth Pride"
},
"app.skins.section.modrinth-pride.tooltip": {
"message": "You received these skins for donating to a Modrinth Pride fundraiser during Pride Month."
},
"app.skins.section.mounts-of-mayhem": {
"message": "Mounts of Mayhem"
},
+63 -5
View File
@@ -13,11 +13,14 @@ import {
commonMessages,
ConfirmModal,
defineMessages,
injectAuth,
injectModrinthClient,
injectNotificationManager,
SkinPreviewRenderer,
useVIntl,
} from '@modrinth/ui'
import { arrayBufferToBase64 } from '@modrinth/utils'
import { useQuery } from '@tanstack/vue-query'
import { type DragDropEvent, getCurrentWebview } from '@tauri-apps/api/webview'
import { computedAsync } from '@vueuse/core'
import type { Ref } from 'vue'
@@ -44,6 +47,7 @@ import {
normalize_skin_texture,
remove_custom_skin,
} from '@/helpers/skins.ts'
import { hasPride26Badge } from '@/helpers/user-campaigns.ts'
import { handleSevereError } from '@/store/error'
import { useTheming } from '@/store/state'
@@ -53,11 +57,25 @@ type VirtualSkinSectionListExpose = {
}
const PENDING_SKIN_REFRESH_DELAY_MS = 11_000
const DEFAULT_SKIN_SECTION_SORT_ORDER = ['Default skins', 'Modrinth Pride']
const messages = defineMessages({
skinSelectorTitle: {
id: 'app.skins.title',
defaultMessage: 'Skin selector',
},
modrinthPrideSection: {
id: 'app.skins.section.modrinth-pride',
defaultMessage: 'Modrinth Pride',
},
modrinthPrideTooltip: {
id: 'app.skins.section.modrinth-pride.tooltip',
defaultMessage:
'You received these skins for donating to a Modrinth Pride fundraiser during Pride Month.',
},
modrinthSection: {
id: 'app.skins.section.modrinth',
defaultMessage: 'Modrinth',
},
defaultSkinsSection: {
id: 'app.skins.section.default-skins',
defaultMessage: 'Default skins',
@@ -157,6 +175,8 @@ const skinSectionList = useTemplateRef<VirtualSkinSectionListExpose>('skinSectio
const { formatMessage } = useVIntl()
const notifications = injectNotificationManager()
const { addNotification, handleError } = notifications
const auth = injectAuth()
const client = injectModrinthClient()
const themeStore = useTheming()
const skins = ref<Skin[]>([])
@@ -180,22 +200,42 @@ const savedSkins = computed(() => {
return []
}
})
const defaultSkins = computed(() => filterDefaultSkins(skins.value))
const { data: modrinthUser } = useQuery({
queryKey: computed(() => ['authenticated-user', 'campaigns', auth.user.value?.id]),
queryFn: () => client.labrinth.users_v3.getAuthenticated(),
enabled: () => !!auth.session_token.value,
retry: false,
})
const hasModrinthPrideCampaign = computed(
() => !!auth.session_token.value && hasPride26Badge(modrinthUser.value?.campaigns?.pride_26),
)
const defaultSkins = computed(() =>
filterDefaultSkins(skins.value).filter(
(skin) => skin.section !== 'Modrinth Pride' || hasModrinthPrideCampaign.value,
),
)
const defaultSkinSections = computed(() => {
const sections = new Map<string, Skin[]>()
for (const skin of defaultSkins.value) {
const sectionTitle = getDefaultSkinSectionTitle(skin.section)
const sectionSkins = sections.get(sectionTitle)
const section = skin.section ?? 'Default skins'
const sectionSkins = sections.get(section)
if (sectionSkins) {
sectionSkins.push(skin)
} else {
sections.set(sectionTitle, [skin])
sections.set(section, [skin])
}
}
return Array.from(sections, ([title, skins]) => ({ title, skins }))
return Array.from(sections, ([section, skins]) => ({
section,
title: getDefaultSkinSectionTitle(section),
infoTooltip: getDefaultSkinSectionInfoTooltip(section),
skins,
})).sort(
(a, b) => getDefaultSkinSectionSortIndex(a.section) - getDefaultSkinSectionSortIndex(b.section),
)
})
const currentCape = computed(() => {
@@ -303,6 +343,10 @@ function isMinecraftSkinRateLimitError(error: unknown) {
function getDefaultSkinSectionTitle(section?: string) {
switch (section) {
case 'Modrinth Pride':
return formatMessage(messages.modrinthPrideSection)
case 'Modrinth':
return formatMessage(messages.modrinthSection)
case 'MINECON Earth 2017':
return formatMessage(messages.mineconEarth2017Section)
case 'Builders & Biomes':
@@ -326,6 +370,20 @@ function getDefaultSkinSectionTitle(section?: string) {
}
}
function getDefaultSkinSectionInfoTooltip(section: string) {
switch (section) {
case 'Modrinth Pride':
return formatMessage(messages.modrinthPrideTooltip)
default:
return undefined
}
}
function getDefaultSkinSectionSortIndex(section: string) {
const index = DEFAULT_SKIN_SECTION_SORT_ORDER.indexOf(section)
return index === -1 ? DEFAULT_SKIN_SECTION_SORT_ORDER.length : index
}
function changeSkin(newSkin: Skin) {
selectedSkin.value = newSkin
}
+1
View File
@@ -9,6 +9,7 @@ export const DEFAULT_FEATURE_FLAGS = {
server_ram_as_bytes_always_on: false,
always_show_app_controls: false,
skip_unknown_pack_warning: false,
pride_fundraiser: true,
i18n_debug: false,
}
+4 -4
View File
@@ -75,10 +75,10 @@ export default defineNuxtConfig({
},
ssr: {
// https://github.com/Akryum/floating-vue/issues/809#issuecomment-1002996240
noExternal: ['v-tooltip'],
optimizeDeps: {
include: ['vue-router'],
},
noExternal: ['floating-vue', '@floating-ui/core', '@floating-ui/dom'],
},
optimizeDeps: {
include: ['vue-router', 'floating-vue', '@floating-ui/dom'],
},
define: {
global: {},
Binary file not shown.

After

Width:  |  Height:  |  Size: 446 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 528 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 891 KiB

@@ -1,5 +1,12 @@
{
"articles": [
{
"title": "Pride 2026 Fundraiser: Matching up to $5,000",
"summary": "Celebrating our community and working together to make a difference.",
"thumbnail": "https://modrinth.com/news/article/pride-campaign-2026/thumbnail.webp",
"date": "2026-06-01T16:00:00.000Z",
"link": "https://modrinth.com/news/article/pride-campaign-2026"
},
{
"title": "Project Analytics are good now",
"summary": "Get deeper insights into how people are using your projects with breakdowns, filtering, and more!",
File diff suppressed because one or more lines are too long
+2
View File
@@ -18,6 +18,7 @@ import { LabrinthAnalyticsV3Module } from './labrinth/analytics/v3'
import { LabrinthAuthInternalModule } from './labrinth/auth/internal'
import { LabrinthAuthV2Module } from './labrinth/auth/v2'
import { LabrinthBillingInternalModule } from './labrinth/billing/internal'
import { LabrinthCampaignInternalModule } from './labrinth/campaign/internal'
import { LabrinthCollectionsModule } from './labrinth/collections'
import { LabrinthExternalProjectsInternalModule } from './labrinth/external-projects/internal'
import { LabrinthGlobalsInternalModule } from './labrinth/globals/internal'
@@ -80,6 +81,7 @@ export const MODULE_REGISTRY = {
labrinth_auth_internal: LabrinthAuthInternalModule,
labrinth_auth_v2: LabrinthAuthV2Module,
labrinth_billing_internal: LabrinthBillingInternalModule,
labrinth_campaign_internal: LabrinthCampaignInternalModule,
labrinth_collections: LabrinthCollectionsModule,
labrinth_external_projects_internal: LabrinthExternalProjectsInternalModule,
labrinth_globals_internal: LabrinthGlobalsInternalModule,
@@ -0,0 +1,21 @@
import { AbstractModule } from '../../../core/abstract-module'
import type { Labrinth } from '../types'
export class LabrinthCampaignInternalModule extends AbstractModule {
public getModuleID(): string {
return 'labrinth_campaign_internal'
}
/**
* Get Pride 2026 campaign fundraising progress.
* GET /_internal/campaign/pride-26
*/
public async getPride26(): Promise<Labrinth.Campaign.Internal.CampaignInfo> {
return this.client.request<Labrinth.Campaign.Internal.CampaignInfo>('/campaign/pride-26', {
api: 'labrinth',
version: 'internal',
method: 'GET',
skipAuth: true,
})
}
}
@@ -1,6 +1,17 @@
import type { RawDecimal } from '../../utils/types'
import type { ISO3166 } from '../iso3166/types'
export namespace Labrinth {
export namespace Campaign {
export namespace Internal {
export type CampaignInfo = {
total_donations_usd: RawDecimal
target_usd: RawDecimal
num_donators: number
}
}
}
export namespace Billing {
export namespace Internal {
export type PriceDuration = 'five-days' | 'monthly' | 'quarterly' | 'yearly'
@@ -1025,6 +1036,7 @@ export namespace Labrinth {
icon_url: string | null
color: number | null
members: Projects.v3.TeamMember[]
moderation_notes?: Users.Common.ModerationNote | null
}
export type CreateOrganizationRequest = {
@@ -1249,7 +1261,7 @@ export namespace Labrinth {
}
export namespace Users {
namespace Common {
export namespace Common {
export type Role = 'developer' | 'moderator' | 'admin'
export type AuthProvider =
@@ -1267,6 +1279,15 @@ export namespace Labrinth {
venmo_handle?: string
balance: number
}
export type ModerationNote = {
notes: string
last_modified: string
created_at: string
last_author: string
user_rating: number
version: number
}
}
export namespace v2 {
@@ -1316,6 +1337,7 @@ export namespace Labrinth {
created: string
role: Role
badges: number
campaigns: UserCampaigns
auth_providers?: AuthProvider[]
email?: string
email_verified?: boolean
@@ -1324,7 +1346,7 @@ export namespace Labrinth {
payout_data?: UserPayoutData
stripe_customer_id?: string
allow_friend_requests?: boolean
campaigns: UserCampaigns
moderation_notes?: Common.ModerationNote | null
github_id?: number
}
@@ -6,6 +6,18 @@ export class LabrinthUsersV3Module extends AbstractModule {
return 'labrinth_users_v3'
}
/**
* Get the authenticated user.
* GET /v3/user
*/
public async getAuthenticated(): Promise<Labrinth.Users.v3.User> {
return this.client.request<Labrinth.Users.v3.User>('/user', {
api: 'labrinth',
version: 3,
method: 'GET',
})
}
/**
* Get a user by ID or username
*
@@ -6,6 +6,7 @@ use crate::{minecraft_skins::SkinSource, state::MinecraftSkinVariant};
use super::super::super::Skin;
const MODRINTH_PRIDE_SKIN_PACK_SECTION: &str = "Modrinth Pride";
const DEFAULT_SKINS_SECTION: &str = "Default skins";
const MINECON_EARTH_2017_SKIN_PACK_SECTION: &str = "MINECON Earth 2017";
const BUILDERS_AND_BIOMES_SKIN_PACK_SECTION: &str = "Builders & Biomes";
@@ -16,14 +17,122 @@ const THE_COPPER_AGE_SKIN_PACK_SECTION: &str = "The Copper Age";
const MOUNTS_OF_MAYHEM_SKIN_PACK_SECTION: &str = "Mounts of Mayhem";
const TINY_TAKEOVER_SKIN_PACK_SECTION: &str = "Tiny Takeover";
/// A list of default Minecraft skins to make available to the user, created by Mojang.
/// A list of bundled Minecraft skins to make available to the user.
pub static DEFAULT_SKINS: LazyLock<Vec<Skin>> = LazyLock::new(|| {
//
// The skins below are available in the vanilla Minecraft launcher, and were found
// The Mojang skins below are available in the vanilla Minecraft launcher, and were found
// by reverse engineering the behavior of the Minecraft launcher. The textures are
// publicly available at `https://textures.minecraft.net/texture/<texture_key>`.
//
vec![Skin {
texture_key: Arc::from("local-cb3974d16e88a6bd1fe91b0bd58aa5a89abc01f66aed0efc732b84091a523fc9"),
name: Some(Arc::from("Mr. Pack - Asexual")),
section: Some(Arc::from(MODRINTH_PRIDE_SKIN_PACK_SECTION)),
variant: MinecraftSkinVariant::Classic,
cape_id: None,
texture: Arc::from(Url::try_from(
"data:image/png;base64,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"
).unwrap()),
source: SkinSource::Default,
is_equipped: false,
},
Skin {
texture_key: Arc::from("local-017ef388aa15a32c47af5b6230c0969085c30e2a884e8853fb449bcdcb60d6f4"),
name: Some(Arc::from("Mr. Pack - Bisexual")),
section: Some(Arc::from(MODRINTH_PRIDE_SKIN_PACK_SECTION)),
variant: MinecraftSkinVariant::Classic,
cape_id: None,
texture: Arc::from(Url::try_from(
"data:image/png;base64,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"
).unwrap()),
source: SkinSource::Default,
is_equipped: false,
},
Skin {
texture_key: Arc::from("local-6721474dc24f7ebfac096c3df0bbc0ff7bd3d7d63e8bce13754b0db9acab3805"),
name: Some(Arc::from("Mr. Pack - Genderfluid")),
section: Some(Arc::from(MODRINTH_PRIDE_SKIN_PACK_SECTION)),
variant: MinecraftSkinVariant::Classic,
cape_id: None,
texture: Arc::from(Url::try_from(
"data:image/png;base64,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"
).unwrap()),
source: SkinSource::Default,
is_equipped: false,
},
Skin {
texture_key: Arc::from("local-7f01d162a7dedfd0e1bf1a03533ca9eecd8105dd1008e3297ff9d9d8b1582b8c"),
name: Some(Arc::from("Mr. Pack - Intersex")),
section: Some(Arc::from(MODRINTH_PRIDE_SKIN_PACK_SECTION)),
variant: MinecraftSkinVariant::Classic,
cape_id: None,
texture: Arc::from(Url::try_from(
"data:image/png;base64,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"
).unwrap()),
source: SkinSource::Default,
is_equipped: false,
},
Skin {
texture_key: Arc::from("local-9417023c7f4674feff1592df3cab3bea791a2dd2bc453eb03033859fbf9483f9"),
name: Some(Arc::from("Mr. Pack - Lesbian")),
section: Some(Arc::from(MODRINTH_PRIDE_SKIN_PACK_SECTION)),
variant: MinecraftSkinVariant::Classic,
cape_id: None,
texture: Arc::from(Url::try_from(
"data:image/png;base64,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"
).unwrap()),
source: SkinSource::Default,
is_equipped: false,
},
Skin {
texture_key: Arc::from("local-88b4e9d37f25f947c12dfc5c354af30601016cf852e90681633c92b750e43761"),
name: Some(Arc::from("Mr. Pack - MLM")),
section: Some(Arc::from(MODRINTH_PRIDE_SKIN_PACK_SECTION)),
variant: MinecraftSkinVariant::Classic,
cape_id: None,
texture: Arc::from(Url::try_from(
"data:image/png;base64,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"
).unwrap()),
source: SkinSource::Default,
is_equipped: false,
},
Skin {
texture_key: Arc::from("local-8fcc36625f7b7ce18362ab5eaec276653f26af331f4ec38d00a610c93da69640"),
name: Some(Arc::from("Mr. Pack - Nonbinary")),
section: Some(Arc::from(MODRINTH_PRIDE_SKIN_PACK_SECTION)),
variant: MinecraftSkinVariant::Classic,
cape_id: None,
texture: Arc::from(Url::try_from(
"data:image/png;base64,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"
).unwrap()),
source: SkinSource::Default,
is_equipped: false,
},
Skin {
texture_key: Arc::from("local-7cc8f7620b66002be6e531ac0f90f050eca831d7827a66c01cf6256b0a4f936e"),
name: Some(Arc::from("Mr. Pack - Pride")),
section: Some(Arc::from(MODRINTH_PRIDE_SKIN_PACK_SECTION)),
variant: MinecraftSkinVariant::Classic,
cape_id: None,
texture: Arc::from(Url::try_from(
"data:image/png;base64,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"
).unwrap()),
source: SkinSource::Default,
is_equipped: false,
},
Skin {
texture_key: Arc::from("local-2674d92834203a9fc2b3c435fc8c89fb68de8c62eac674b885c1fe7868ab04b6"),
name: Some(Arc::from("Mr. Pack - Transgender")),
section: Some(Arc::from(MODRINTH_PRIDE_SKIN_PACK_SECTION)),
variant: MinecraftSkinVariant::Classic,
cape_id: None,
texture: Arc::from(Url::try_from(
"data:image/png;base64,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"
).unwrap()),
source: SkinSource::Default,
is_equipped: false,
},
Skin {
texture_key: Arc::from("46acd06e8483b176e8ea39fc12fe105eb3a2a4970f5100057e9d84d4b60bdfa7"),
name: Some(Arc::from("Alex")),
section: Some(Arc::from(DEFAULT_SKINS_SECTION)),
@@ -239,6 +348,18 @@ pub static DEFAULT_SKINS: LazyLock<Vec<Skin>> = LazyLock::new(|| {
source: SkinSource::Default,
is_equipped: false,
},
Skin {
texture_key: Arc::from("local-8776f8b6615e2051b3da182b8208ae8700254d3cc49eac36aef85f7577c85e4a"),
name: Some(Arc::from("Mr. Pack")),
section: Some(Arc::from(DEFAULT_SKINS_SECTION)),
variant: MinecraftSkinVariant::Classic,
cape_id: None,
texture: Arc::from(Url::try_from(
"data:image/png;base64,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"
).unwrap()),
source: SkinSource::Default,
is_equipped: false,
},
//
// The skins below come from free skin packs released by Mojang for Java Edition players.
//
+1
View File
@@ -58,6 +58,7 @@ pub enum FeatureFlag {
ServerRamAsBytesAlwaysOn,
AlwaysShowAppControls,
SkipUnknownPackWarning,
PrideFundraiser,
ServersInApp,
ServerProjectQa,
I18nDebug,
+3 -4
View File
@@ -700,10 +700,10 @@ a:not(.no-click-animation),
.v-popper--theme-tooltip {
.v-popper__inner {
background: var(--surface-3) !important;
color: var(--color-contrast) !important;
background: var(--color-tooltip-bg) !important;
color: var(--color-tooltip-text) !important;
padding: 0.625rem 0.75rem !important;
border-radius: 12px !important;
border-radius: var(--radius-sm) !important;
filter: drop-shadow(2px 2px 0.4rem rgba(0, 0, 0, 0.5));
font-size: 0.9rem;
font-weight: 500;
@@ -730,7 +730,6 @@ a:not(.no-click-animation),
color: var(--color-tooltip-text) !important;
padding: 0.75rem 1rem !important;
border-radius: 0.75rem !important;
filter: drop-shadow(5px 5px 0.8rem rgba(0, 0, 0, 0.35));
font-size: 0.9rem;
font-weight: bold;
line-height: 1;
+2 -2
View File
@@ -199,8 +199,8 @@ html {
--radius-xl: 1.25rem;
--radius-max: 999999999px;
--color-tooltip-text: var(--dark-color-contrast);
--color-tooltip-bg: #000;
--color-tooltip-text: var(--color-contrast);
--color-tooltip-bg: var(--surface-3);
--color-ad: rgba(125, 75, 162, 0.2);
--color-ad-raised: rgba(190, 140, 243, 0.5);
@@ -0,0 +1,55 @@
---
title: 'Pride 2026 Fundraiser: Matching up to $5,000'
short_title: Pride 2026 Fundraiser
summary: Celebrating our community and working together to make a difference.
short_summary: Celebrating our community and working together to make a difference.
date: 2026-06-01T12:00:00-04:00
---
## Happy Pride Month!
Pride is a time for celebration, self-expression, and community. Queer individuals are part of Modrinth at every level: across our team, our creator community, and the wider Minecraft community as a whole. We're very proud to be vocal in our support for LGBTQIA+ rights all year round.
But for many people, Pride is a celebration that comes with great risk. Recent reporting shows there's no shortage of tragedies facing LGBTQIA+ people. Threats, attacks, and even worse happen around the world - [Juniper Blessing](https://www.yahoo.com/news/articles/most-amazing-human-being-ever-024305055.html) and [Shyyell Diamond Sanchez-McCray](https://www.advocate.com/news/crime/black-drag-artist-virginia-murdered), trans rights activists [Zehrish Khanzadi and Bindiya Rana](https://www.theguardian.com/global-development/2026/jan/27/pakistan-transgender-attacks-killings) surviving gunfire in Pakistan, and [many more](https://en.wikipedia.org/wiki/List_of_acts_of_violence_against_LGBTQ_people) cases like these are reminders that safety is not guaranteed for some members of our community.
That's why this Pride Month, Modrinth will be running a fundraiser supporting [**Rainbow Railroad**](https://www.rainbowrailroad.org/).
Rainbow Railroad works with LGBTQIA+ people who are facing danger, helping to connect them with support, resources, and pathways to safe countries. Through their **Solidarity in Pride 2026** campaign, they're raising funds to help at-risk LGBTQIA+ people access safety when staying in place is no longer an option.
<a href="https://tiltify.com/+modrinth/modrinth-pride-2026" class="!text-2xl font-semibold">You can support the fundraiser here.</a>
**When donating, please enter your _Modrinth username_ as the _Tiltify display name_ so we can apply any eligible rewards to your account!**
## Donation Matching Commitment
We want to maximize the impact our community can make.
To help achieve this, we've committed to matching all donations 1:1 until our fundraising goal of $5,000 has been met.
## Donor Rewards
This year, we will also be providing rewards as a small thank you to everyone who supports the fundraiser. Including a few limited rewards specific to this year's fundraiser!
### Pride Badge 2026 & Pride Skins
Everyone who donates will receive a special Pride 2026 profile badge on Modrinth.
<img width="204px" height="204px" class="mx-auto mb-4" src="/news/article/pride-campaign-2026/pride-badge.webp" />
Supporters with this badge will also unlock a special Pride section in the Skin selector in the Modrinth App featuring the incredibly cute Mr. Pack in Pride-themed, exclusive Modrinth skins:
![Mr. Pack Pride skins](./mrpack-pride-banner.webp)
### Modrinth+
Donations of $5 (USD) or more will grant you with free [Modrinth+](https://modrinth.com/plus) benefits for 1 month as an additional thank-you - available to users who do not already have an active Modrinth+ subscription.
## Pride Collection 2026
Alongside the fundraiser, we're also launching the [Modrinth Pride Collection!](https://modrinth.com/collection/M4c3ITvd)
This collection highlights projects made by and for the queer community, including mods, resource packs, modpacks, plugins, and more across Modrinth.
[**You can submit projects all month long**](https://tally.so/r/GxQBbO)
Throughout June, we'll be featuring selected projects from the collection across our social media alongside our usual creator spotlights. Pride is about visibility, and we want to use this month to celebrate the LGBTQIA+ creators and communities that help make Modrinth what it is.
+2
View File
@@ -27,6 +27,7 @@ import { article as new_environments } from "./new_environments";
import { article as new_site_beta } from "./new_site_beta";
import { article as plugins_resource_packs } from "./plugins_resource_packs";
import { article as pride_campaign_2025 } from "./pride_campaign_2025";
import { article as pride_campaign_2026 } from "./pride_campaign_2026";
import { article as redesign } from "./redesign";
import { article as russian_censorship } from "./russian_censorship";
import { article as skins_now_in_modrinth_app } from "./skins_now_in_modrinth_app";
@@ -67,6 +68,7 @@ export const articles = [
new_site_beta,
plugins_resource_packs,
pride_campaign_2025,
pride_campaign_2026,
redesign,
russian_censorship,
skins_now_in_modrinth_app,
@@ -0,0 +1,2 @@
// AUTO-GENERATED FILE - DO NOT EDIT
export const html = `<h2>Happy Pride Month!</h2><p>Pride is a time for celebration, self-expression, and community. Queer individuals are part of Modrinth at every level: across our team, our creator community, and the wider Minecraft community as a whole. We're very proud to be vocal in our support for LGBTQIA+ rights all year round.</p><p>But for many people, Pride is a celebration that comes with great risk. Recent reporting shows there's no shortage of tragedies facing LGBTQIA+ people. Threats, attacks, and even worse happen around the world - <a href="https://www.yahoo.com/news/articles/most-amazing-human-being-ever-024305055.html" rel="noopener nofollow ugc">Juniper Blessing</a> and <a href="https://www.advocate.com/news/crime/black-drag-artist-virginia-murdered" rel="noopener nofollow ugc">Shyyell Diamond Sanchez-McCray</a>, trans rights activists <a href="https://www.theguardian.com/global-development/2026/jan/27/pakistan-transgender-attacks-killings" rel="noopener nofollow ugc">Zehrish Khanzadi and Bindiya Rana</a> surviving gunfire in Pakistan, and <a href="https://en.wikipedia.org/wiki/List_of_acts_of_violence_against_LGBTQ_people" rel="noopener nofollow ugc">many more</a> cases like these are reminders that safety is not guaranteed for some members of our community.</p><p>That's why this Pride Month, Modrinth will be running a fundraiser supporting <a href="https://www.rainbowrailroad.org/" rel="noopener nofollow ugc"><strong>Rainbow Railroad</strong></a>.</p><p>Rainbow Railroad works with LGBTQIA+ people who are facing danger, helping to connect them with support, resources, and pathways to safe countries. Through their <strong>Solidarity in Pride 2026</strong> campaign, they're raising funds to help at-risk LGBTQIA+ people access safety when staying in place is no longer an option.</p><p><a href="https://tiltify.com/+modrinth/modrinth-pride-2026" class="!text-2xl font-semibold">You can support the fundraiser here.</a></p><p><strong>When donating, please enter your <em>Modrinth username</em> as the <em>Tiltify display name</em> so we can apply any eligible rewards to your account!</strong></p><h2>Donation Matching Commitment</h2><p>We want to maximize the impact our community can make.</p><p>To help achieve this, we've committed to matching all donations 1:1 until our fundraising goal of $5,000 has been met.</p><h2>Donor Rewards</h2><p>This year, we will also be providing rewards as a small thank you to everyone who supports the fundraiser. Including a few limited rewards specific to this year's fundraiser!</p><h3>Pride Badge 2026 &amp; Pride Skins</h3><p>Everyone who donates will receive a special Pride 2026 profile badge on Modrinth.</p><img width="204px" height="204px" class="mx-auto mb-4" src="/news/article/pride-campaign-2026/pride-badge.webp"><p>Supporters with this badge will also unlock a special Pride section in the Skin selector in the Modrinth App featuring the incredibly cute Mr. Pack in Pride-themed, exclusive Modrinth skins:</p><p><img src="/news/article/pride-campaign-2026/mrpack-pride-banner.webp" alt="Mr. Pack Pride skins"></p><h3>Modrinth+</h3><p>Donations of $5 (USD) or more will grant you with free <a href="/plus" rel="noopener nofollow ugc">Modrinth+</a> benefits for 1 month as an additional thank-you - available to users who do not already have an active Modrinth+ subscription.</p><h2>Pride Collection 2026</h2><p>Alongside the fundraiser, we're also launching the <a href="/collection/M4c3ITvd" rel="noopener nofollow ugc">Modrinth Pride Collection!</a></p><p>This collection highlights projects made by and for the queer community, including mods, resource packs, modpacks, plugins, and more across Modrinth.</p><p><a href="https://tally.so/r/GxQBbO" rel="noopener nofollow ugc"><strong>You can submit projects all month long</strong></a></p><p>Throughout June, we'll be featuring selected projects from the collection across our social media alongside our usual creator spotlights. Pride is about visibility, and we want to use this month to celebrate the LGBTQIA+ creators and communities that help make Modrinth what it is.</p>`;
@@ -0,0 +1,13 @@
// AUTO-GENERATED FILE - DO NOT EDIT
export const article = {
html: () => import(`./pride_campaign_2026.content`).then(m => m.html),
title: "Pride 2026 Fundraiser: Matching up to $5,000",
summary: "Celebrating our community and working together to make a difference.",
date: "2026-06-01T16:00:00.000Z",
slug: "pride-campaign-2026",
authors: [],
unlisted: false,
thumbnail: true,
short_title: "Pride 2026 Fundraiser",
short_summary: "Celebrating our community and working together to make a difference.",
};
Binary file not shown.

After

Width:  |  Height:  |  Size: 446 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 528 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 891 KiB

@@ -49,14 +49,14 @@ watch(
<template>
<div
v-tooltip="tooltip ?? undefined"
class="skin-button group relative flex items-end justify-center overflow-hidden border border-solid transition-[border-color,box-shadow] duration-200 focus-within:outline focus-within:outline-2 focus-within:outline-offset-2 focus-within:outline-brand"
class="skin-button group relative flex items-end justify-center overflow-hidden border border-solid transition-[border-color,box-shadow] duration-200"
:class="[
selected ? 'skin-button--selected' : '',
{ 'skin-button--with-actions': $slots['overlay-buttons'] },
]"
>
<button
class="absolute inset-0 z-10 cursor-pointer border-none bg-transparent p-0"
class="absolute inset-0 z-10 cursor-pointer border-none bg-transparent p-0 focus-visible:outline-none"
:aria-label="tooltip ? `Select ${tooltip}` : 'Select skin'"
:aria-pressed="selected"
@click="emit('select')"
@@ -151,6 +151,11 @@ watch(
background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(37, 39, 45, 0.2) 100%);
}
.skin-button:has(:focus-visible) {
outline: 2px solid var(--color-brand);
outline-offset: 2px;
}
.skin-button:hover,
.skin-button:focus-within,
.skin-button--with-actions:hover,
@@ -16,7 +16,9 @@ export const INTERACT_ANIMATION_NAME = 'interact'
const INTERACT_VISIBLE_DURATION_SECONDS = 0.5
const CLICK_IMPULSE_MAX_ENERGY = 5
const CLICK_IMPULSE_ENERGY_PER_CLICK = 1
const CLICK_IMPULSE_DECAY_PER_SECOND = 6
const DAMAGE_FLASH_MIN_CLICKS_PER_SECOND = 2
const CLICK_IMPULSE_DECAY_PER_SECOND =
DAMAGE_FLASH_MIN_CLICKS_PER_SECOND * CLICK_IMPULSE_ENERGY_PER_CLICK
const CLICK_IMPULSE_BASE_SPEED = 18
const CLICK_IMPULSE_SPEED_BOOST = 7
const CLICK_IMPULSE_OFFSET_X = 0.035