Add russian banner, blog post translation, and unlist old blog post. Adjust banner colors in dark mode (#4468)

* Add russian banner, blog post translation, and unlist old blog post. Adjust banner colors in dark mode

* russia
This commit is contained in:
Prospector
2025-10-01 19:00:01 -07:00
committed by GitHub
parent c169b48228
commit 04f0f53104
47 changed files with 220 additions and 51 deletions

View File

@@ -258,17 +258,17 @@ html {
--hover-filter: brightness(120%);
--active-filter: brightness(140%);
--banner-error-bg: #4c1515;
--banner-error-bg: #45222c;
--banner-error-text: #fee2e2;
--banner-error-border: #7f1d1d;
--banner-error-border: var(--color-red);
--banner-warning-bg: #4a2a0a;
--banner-warning-text: #ffe6c0;
--banner-warning-border: #b54708;
--banner-warning-bg: #453425;
--banner-warning-text: #e4d9ca;
--banner-warning-border: var(--color-orange);
--banner-info-bg: #1e2a44;
--banner-info-bg: #28374b;
--banner-info-text: #dbeafe;
--banner-info-border: #2563eb;
--banner-info-border: var(--color-blue);
}
.oled-mode {

View File

@@ -46,7 +46,9 @@ const articles = ref(
title: article.title,
summary: article.summary,
date: article.date,
unlisted: article.unlisted,
}))
.filter((a) => !a.unlisted)
.sort((a, b) => new Date(b.date).getTime() - new Date(a.date).getTime()),
)

View File

@@ -37,6 +37,7 @@ export const DEFAULT_FEATURE_FLAGS = validateValues({
showProjectPageQuickServerButton: false,
newProjectGeneralSettings: false,
newProjectEnvironmentSettings: true,
hideRussiaCensorshipBanner: false,
// advancedRendering: true,
// externalLinksNewTab: true,
// notUsingBlockers: false,

View File

@@ -27,6 +27,61 @@
</div>
</div>
<div ref="main_page" class="layout" :class="{ 'expanded-mobile-nav': isBrowseMenuOpen }">
<PagewideBanner v-if="isRussia && !flags.hideRussiaCensorshipBanner" variant="error">
<template #title>
<div class="flex flex-col gap-1 text-contrast">
<span lang="ru">К сожалению, Modrinth скоро станет недоступен в России</span>
<span class="text-sm font-medium opacity-50" lang="en">
Modrinth will soon be unavailable in Russia
</span>
</div>
</template>
<template #description>
<p class="m-0" lang="ru">
Российское правительство потребовало от нас заблокировать некоторые проекты на Modrinth,
но мы решили отказать им в цензуре.
</p>
<p class="-mt-2 mb-0 text-sm opacity-50" lang="en">
The Russian government has asked us to censor certain topics on Modrinth and we have
decided to refuse to comply with their requests.
</p>
<p class="m-0 font-semibold" lang="ru">
Пожалуйста, найдите какой-нибудь надёжный VPN или прокси, чтобы не потерять доступ к
Modrinth.
</p>
<p class="-mt-2 mb-0 text-sm opacity-50" lang="en">
Please seek a reputable VPN or proxy of some kind to continue to access Modrinth in
Russia.
</p>
</template>
<template #actions>
<div class="mt-2 flex w-fit gap-2">
<ButtonStyled color="brand">
<nuxt-link to="/news/article/standing-by-our-values-russian">
<BookTextIcon /> Прочесть наше полное заявление
<span class="text-xs font-medium">(Перевод на русский)</span>
</nuxt-link>
</ButtonStyled>
<ButtonStyled>
<nuxt-link to="/news/article/standing-by-our-values">
<BookTextIcon /> Read our full statement
<span class="text-xs font-medium">(English)</span>
</nuxt-link>
</ButtonStyled>
</div>
</template>
<template #actions_right>
<ButtonStyled circular type="transparent">
<button
v-tooltip="formatMessage(commonMessages.closeButton)"
@click="hideRussiaCensorshipBanner"
>
<XIcon :aria-label="formatMessage(commonMessages.closeButton)" />
</button>
</ButtonStyled>
</template>
</PagewideBanner>
<PagewideBanner v-if="showTaxComplianceBanner" variant="warning">
<template #title>
<span>{{ formatMessage(taxBannerMessages.title) }}</span>
@@ -111,7 +166,7 @@
<Button
transparent
icon-only
:aria-label="formatMessage(messages.close)"
:aria-label="formatMessage(commonMessages.closeButton)"
@click="hideStagingBanner"
>
<XIcon aria-hidden="true" />
@@ -774,6 +829,7 @@ import {
BellIcon,
BlueskyIcon,
BookmarkIcon,
BookTextIcon,
BoxIcon,
BracesIcon,
ChartIcon,
@@ -833,6 +889,8 @@ import TeleportOverflowMenu from '~/components/ui/servers/TeleportOverflowMenu.v
import { errors as generatedStateErrors } from '~/generated/state.json'
import { getProjectTypeMessage } from '~/utils/i18n-project-type.ts'
const country = useUserCountry()
const { formatMessage } = useVIntl()
const auth = await useAuth()
@@ -875,7 +933,6 @@ const taxBannerMessages = defineMessages({
id: 'layout.banner.tax.action',
defaultMessage: 'Complete tax form',
},
close: { id: 'common.close', defaultMessage: 'Close' },
})
const taxFormModalRef = ref(null)
@@ -1019,10 +1076,6 @@ const messages = defineMessages({
id: 'layout.action.change-theme',
defaultMessage: 'Change theme',
},
close: {
id: 'layout.action.close-banner',
defaultMessage: 'Close',
},
modrinthHomePage: {
id: 'layout.nav.modrinth-home-page',
defaultMessage: 'Modrinth home page',
@@ -1265,6 +1318,8 @@ const isDiscoveringSubpage = computed(
() => route.name && route.name.startsWith('type-id') && !route.query.sid,
)
const isRussia = computed(() => country.value === 'ru')
const rCount = ref(0)
const randomProjects = ref([])
@@ -1403,6 +1458,11 @@ function hideStagingBanner() {
cosmetics.value.hideStagingBanner = true
}
function hideRussiaCensorshipBanner() {
flags.value.hideRussiaCensorshipBanner = true
saveFeatureFlags()
}
const socialLinks = [
{
label: formatMessage(

View File

@@ -18,7 +18,9 @@ const articles = ref(
title: article.title,
summary: article.summary,
date: article.date,
unlisted: article.unlisted,
}))
.filter((a) => !a.unlisted)
.sort((a, b) => new Date(b.date).getTime() - new Date(a.date).getTime()),
)

View File

@@ -2,18 +2,11 @@
"articles": [
{
"title": "Standing By Our Values",
"summary": "Keeping LGBTQIA+ content visible despite demands from Russia",
"summary": "Keeping LGBTQIA+ content visible despite demands from Russia.",
"thumbnail": "https://modrinth.com/news/default.webp",
"date": "2025-10-02T00:00:00.000Z",
"link": "https://modrinth.com/news/article/standing-by-our-values"
},
{
"title": "Russia forced us to do this",
"summary": "Update on censorship for Russian users and our continued support for those affected.",
"thumbnail": "https://modrinth.com/news/article/russian-censorship/thumbnail.webp",
"date": "2025-10-01T01:30:00.000Z",
"link": "https://modrinth.com/news/article/russian-censorship"
},
{
"title": "Modrinth Servers Launches in Asia",
"summary": "Our latest Modrinth Servers datacenter is in Singapore.",

View File

@@ -4,24 +4,16 @@
<description><![CDATA[Keep up-to-date on the latest news from Modrinth.]]></description>
<link>https://modrinth.com/news/</link>
<generator>@modrinth/blog</generator>
<lastBuildDate>Wed, 01 Oct 2025 23:57:26 GMT</lastBuildDate>
<lastBuildDate>Thu, 02 Oct 2025 01:36:13 GMT</lastBuildDate>
<atom:link href="https://modrinth.com/news/feed/rss.xml" rel="self" type="application/rss+xml"/>
<language><![CDATA[en]]></language>
<item>
<title><![CDATA[Standing By Our Values]]></title>
<description><![CDATA[Keeping LGBTQIA+ content visible despite demands from Russia]]></description>
<description><![CDATA[Keeping LGBTQIA+ content visible despite demands from Russia.]]></description>
<link>https://modrinth.com/news/article/standing-by-our-values/</link>
<guid isPermaLink="false">https://modrinth.com/news/article/standing-by-our-values/</guid>
<pubDate>Thu, 02 Oct 2025 00:00:00 GMT</pubDate>
<content:encoded>&lt;![CDATA[&lt;p&gt;Yesterday, we were put in a position no community should have to face. The Russian government contacted us and demanded that four LGBTQ+ projects on Modrinth be removed immediately. If we did not comply, the entire site would have been blocked for everyone in Russia.&lt;/p&gt;&lt;p&gt;We had only that day to make a decision. The entire Modrinth team spent over 5 hours together weighing the options collectively. None of them were good:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Restrict all content on Modrinth for over a million Russian users&lt;/li&gt;&lt;li&gt;Directly impact creators livelihoods, either Russian creators themselves or those whose work is widely played by Russian users&lt;/li&gt;&lt;li&gt;Comply with censorship requests that go directly against our values and beliefs&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Money did not factor into our decision. It costs Modrinth hundreds of dollars a month in bandwidth cost alone to serve content to Russian users while we do not make ad revenue from them.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;/news/article/standing-by-our-values/russia-ad-rev.png&quot; alt=&quot;A screenshot of the Modrinth ad revenue statistics showcasing Russian Ad revenue in the month of August 2025&quot;&gt; &lt;em&gt;Ad revenue from Russian users for the month of September.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;In the end, we told ourselves we were choosing the path of “harm reduction.” We believed that removing the four projects was less censorship than losing access to Modrinth entirely for Russian users. But that choice, made under pressure and with little time, was short-sighted. It was not consistent with our values, our support of the LGBTQ+ community, or our stance against censorship.&lt;/p&gt;&lt;p&gt;We want to be clear: the decision to comply, even briefly, was a mistake. And we are deeply sorry for it.&lt;/p&gt;&lt;h2&gt;What Were Doing Now&lt;/h2&gt;&lt;p&gt;We have decided to reverse that decision. The four projects in question will be fully restored for Russian users. Our values are not negotiable. Going forward, we will not comply with requests from any government body that go against them. Modrinth exists to make game modding open and accessible for all, and we stand by that mission.&lt;/p&gt;&lt;p&gt;We know Modrinth will be blocked by the Russian government at some point, but we will do everything we can to prepare Russian users for it. They will be informed of the upcoming ban and will be provided guidance on how they can continue accessing the website.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;/news/article/standing-by-our-values/russia-notice.png&quot; alt=&quot;A screenshot of the upcoming notice we will be serving to Russian Modrinth users&quot;&gt;&lt;/p&gt;&lt;h2&gt;Impact on Creators&lt;/h2&gt;&lt;p&gt;Modrinth being banned in Russia will not significantly impact overall creator revenue, as very little comes from those users. However, it may affect individual creators in different ways.&lt;/p&gt;&lt;p&gt;For Russian creators, or anyone with a large audience in Russia, this ban could disrupt your revenue and livelihood. That is painful and unfair. We are deeply sorry for this happening and will continue to do everything we can to support you.&lt;/p&gt;&lt;h2&gt;Our Commitment&lt;/h2&gt;&lt;p&gt;From our whole team: we are sorry. We let urgency and pressure steer us into a decision that did not reflect who we are or what we stand for. We want to be transparent about that mistake and take responsibility for making it right.&lt;/p&gt;&lt;p&gt;Our mission remains the same: to support creators, to keep modding accessible, and to provide a safe and welcoming place for everyone.&lt;/p&gt;&lt;p&gt;Thank you for holding us accountable. Thank you for trusting us to do better. And we hope you can continue to support us. If you are in danger or need resources, please consider reaching out to &lt;a href=&quot;https://www.rainbowrailroad.org/&quot; rel=&quot;noopener nofollow ugc&quot;&gt;Rainbow Railroad&lt;/a&gt;, an organization dedicated to helping LGBTQ+ people escape oppression.&lt;/p&gt;&lt;p&gt;💚 The Modrinth Team&lt;/p&gt;]]&gt;</content:encoded>
</item>
<item>
<title><![CDATA[Russia forced us to do this]]></title>
<description><![CDATA[Update on censorship for Russian users and our continued support for those affected.]]></description>
<link>https://modrinth.com/news/article/russian-censorship/</link>
<guid isPermaLink="false">https://modrinth.com/news/article/russian-censorship/</guid>
<pubDate>Wed, 01 Oct 2025 01:30:00 GMT</pubDate>
<content:encoded>&lt;![CDATA[&lt;p&gt;Hi everyone,&lt;/p&gt;&lt;p&gt;We want to be upfront about censorship on the Modrinth platform. Recently, the Russian government contacted us and required us to restrict LGBTQ+ projects for Russian users. If we didnt, they threatened to block Modrinth entirely in Russia.&lt;/p&gt;&lt;p&gt;This is not a decision we believe in. It goes against our values and what we stand for as a community. But we were put in an impossible position: either comply, or cut off every single creator and player in Russia. Thats not a fair choice, and it doesnt make us feel any better about having to go through with it.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;To be clear:&lt;/strong&gt; Modrinth supports the LGBTQ+ community. We always have, and we always will. If youre part of this community, know that we see you, we value you, and were not going anywhere 💚. Modrinth will always be a safe home for you, and well keep directly supporting the LGBTQ+ community through our annual Pride campaign fundraiser.&lt;/p&gt;&lt;p&gt;This sucks, and it hurts to be forced into this situation. But you deserve the truth, and we want you to hear it directly from us: &lt;strong&gt;certain LGBTQ+ content on Modrinth will now be restricted in Russia.&lt;/strong&gt;&lt;/p&gt;]]&gt;</content:encoded>
<content:encoded>&lt;![CDATA[&lt;p&gt;Yesterday, we were put in a position no community should have to face. The Russian government contacted us and demanded that four LGBTQ+ projects on Modrinth be removed immediately. If we did not comply, the entire site would have been blocked for everyone in Russia.&lt;/p&gt;&lt;p&gt;We had only that day to make a decision. The entire Modrinth team spent over 5 hours together weighing the options collectively. None of them were good:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Restrict all content on Modrinth for over a million Russian users&lt;/li&gt;&lt;li&gt;Directly impact creators livelihoods, either Russian creators themselves or those whose work is widely played by Russian users&lt;/li&gt;&lt;li&gt;Comply with censorship requests that go directly against our values and beliefs&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Money did not factor into our decision. It costs Modrinth hundreds of dollars a month in bandwidth cost alone to serve content to Russian users while we do not make ad revenue from them.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;/news/article/standing-by-our-values/russia-ad-rev.png&quot; alt=&quot;A screenshot of the Modrinth ad revenue statistics showcasing Russian Ad revenue in the month of August 2025&quot;&gt; &lt;em&gt;Ad revenue from Russian users for the month of September.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;In the end, we told ourselves we were choosing the path of “harm reduction.” We believed that removing the four projects was less censorship than losing access to Modrinth entirely for Russian users. But that choice, made under pressure and with little time, was short-sighted. It was not consistent with our values, our support of the LGBTQ+ community, or our stance against censorship.&lt;/p&gt;&lt;p&gt;We want to be clear: the decision to comply, even briefly, was a mistake. And we are deeply sorry for it.&lt;/p&gt;&lt;h2&gt;What Were Doing Now&lt;/h2&gt;&lt;p&gt;We have decided to reverse that decision. The four projects in question will be fully restored for Russian users. Our values are not negotiable. Going forward, we will not comply with requests from any government body that go against them. Modrinth exists to make game modding open and accessible for all, and we stand by that mission.&lt;/p&gt;&lt;p&gt;We know Modrinth will be blocked by the Russian government at some point, but we will do everything we can to prepare Russian users for it. They will be informed of the upcoming ban and will be provided guidance on how they can continue accessing the website.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;/news/article/standing-by-our-values/russia-notice.png&quot; alt=&quot;A screenshot of the upcoming notice we will be serving to Russian Modrinth users&quot;&gt;&lt;/p&gt;&lt;h2&gt;Impact on Creators&lt;/h2&gt;&lt;p&gt;Modrinth being banned in Russia will not significantly impact overall creator revenue, as very little comes from those users. However, it may affect individual creators in different ways.&lt;/p&gt;&lt;p&gt;For Russian creators, or anyone with a large audience in Russia, this ban could disrupt your revenue and livelihood. That is painful and unfair. We are deeply sorry for this happening and will continue to do everything we can to support you.&lt;/p&gt;&lt;h2&gt;Our Commitment&lt;/h2&gt;&lt;p&gt;From our whole team: we are sorry. We let urgency and pressure steer us into a decision that did not reflect who we are or what we stand for. We want to be transparent about that mistake and take responsibility for making it right.&lt;/p&gt;&lt;p&gt;Our mission remains the same: to support creators, to keep modding accessible, and to provide a safe and welcoming place for everyone.&lt;/p&gt;&lt;p&gt;Thank you for holding us accountable. Thank you for trusting us to do better. And we hope you can continue to support us. If you are in danger or need resources, please consider reaching out to &lt;a href=&quot;https://www.rainbowrailroad.org/&quot; rel=&quot;noopener nofollow ugc&quot;&gt;Rainbow Railroad&lt;/a&gt;, an organization dedicated to helping LGBTQ+ people escape oppression.&lt;/p&gt;&lt;p&gt;💚 The Modrinth Team&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;/news/article/standing-by-our-values-russian&quot; rel=&quot;noopener nofollow ugc&quot;&gt;Also available in Russian / Перевод на русский&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Our previous, outdated post announcing the Russian censorship can be found archived &lt;a href=&quot;/news/article/russian-censorship&quot; rel=&quot;noopener nofollow ugc&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;]]&gt;</content:encoded>
</item>
<item>
<title><![CDATA[Modrinth Servers Launches in Asia]]></title>