feat:移除了弹窗,服务器添加sls

This commit is contained in:
2026-09-08 22:39:45 +08:00
commit 6a295f9a7a
4082 changed files with 1322534 additions and 0 deletions

View File

@ -0,0 +1 @@
<svg viewBox="0 0 2084 2084" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><g fill-rule="nonzero"><path d="M1041.67 81.38l272.437 159.032-825.246 478.685-272.438-157.971L1041.67 81.38zm87.28 371.074l274.024-159.032 463.937 271.945-276.14 153.73-461.821-266.643z" fill="#3b3b3b"/><path d="M216.42 561.126v961.081l825.247 479.746V1684.95l-551.222-321.774-1.587-644.079L216.42 561.126z" fill="#2e2e2e"/><path d="M1866.91 1517.97l-825.246 483.986v-317.003l550.164-320.714-1.058-645.139 276.14-153.73v952.6z" fill="#333"/><path d="M1590.77 719.097l-549.106 310.112v165.393l214.246-122.984v488.757l138.599-81.106V989.451l196.261-115.563V719.097z" fill="#89c236"/><path d="M488.858 719.097l1.587 644.079 152.353 90.118v-198.79l230.645 132.527v199.319l168.753 98.6v-655.741L488.858 719.097zm383.527 531.166l-227.471-131.466v-150.02l227.471 127.225v154.261z" fill="#7baf31"/></g></svg>

After

Width:  |  Height:  |  Size: 952 B

View File

@ -0,0 +1,3 @@
<svg width="40" height="26" viewBox="0 0 40 26" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M30.5432 8.2353C30.5432 8.2353 38.7102 6.9135 40 3.0587H27.4891V0H0L3.38636 4.0327V8.1646C3.38636 8.1646 11.9309 7.7086 15.236 10.2808C19.7602 14.5846 10.1476 20.4021 10.1476 20.4021L8.49916 26C11.0768 23.4811 15.9894 20.2226 24.9967 20.3797C21.5689 21.4915 18.1223 23.228 15.4392 26H33.6473L31.9326 20.4021C31.9326 20.4021 18.7359 12.4154 30.5432 8.2353Z" fill="#F16436"/>
</svg>

After

Width:  |  Height:  |  Size: 486 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,80 @@
<svg
viewBox="0 0 12.7 12.7"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
>
<title id="title261">Prism Launcher Logo</title>
<defs id="defs3603" />
<g id="layer1">
<g
id="g531"
transform="matrix(0.1353646,0,0,0.1353646,15.301582,0.52916663)" />
<g
id="g397">
<path
style="fill:#99cd61;fill-opacity:1;stroke-width:0.264583"
d="M 6.3500002,6.350001 Z"
id="path7899" />
<path
id="path3228"
style="fill:#df6277;fill-opacity:1;stroke-width:0.264583"
d="M 6.35 0.52916667 L 3.8292236 4.8947917 L 6.35 6.35 L 8.8702596 4.8947917 L 8.9798136 1.7952393 C 7.828708 1.1306481 6.6410414 0.52916667 6.35 0.52916667 z " />
<path
id="path2659"
style="fill:#fb9168;fill-opacity:1;stroke-width:0.264583"
d="M 8.9798136 1.7952393 L 6.35 6.35 L 8.8702596 7.8052083 L 11.391036 3.4395833 C 11.245515 3.1875341 10.130919 2.4598305 8.9798136 1.7952393 z " />
<path
id="path2708"
style="fill:#f3db6c;fill-opacity:1;stroke-width:0.264583"
d="M 11.391036 3.4395833 L 6.35 6.35 L 8.8702596 7.8052083 L 11.609111 6.35 C 11.609111 5.0208177 11.536557 3.6916326 11.391036 3.4395833 z " />
<path
id="path1737"
style="fill:#7ab392;fill-opacity:1;stroke-width:0.264583"
d="M 6.35 6.35 L 6.35 9.2604167 L 11.391036 9.2604167 C 11.536557 9.0083674 11.60911 7.6791823 11.609111 6.35 L 6.35 6.35 z " />
<path
id="path2937"
style="fill:#4b7cbc;fill-opacity:1;stroke-width:0.264583"
d="M 6.35 6.35 L 6.35 9.2604167 L 8.9798136 10.904761 C 10.130919 10.24017 11.245515 9.5124659 11.391036 9.2604167 L 6.35 6.35 z " />
<path
id="path3117"
style="fill:#6f488c;fill-opacity:1;stroke-width:0.264583"
d="M 6.35 6.35 L 3.8292236 7.8052083 L 6.35 12.170833 C 6.6410414 12.170833 7.8287079 11.569352 8.9798136 10.904761 L 6.35 6.35 z " />
<path
id="path2010"
style="fill:#4d3f33;fill-opacity:1;stroke-width:0.264583"
d="M 3.8292236 4.8947917 L 1.308964 9.2604167 C 1.6000054 9.7645152 5.7679172 12.170833 6.35 12.170833 L 6.35 6.35 L 3.8292236 4.8947917 z " />
<path
id="path1744"
style="fill:#7a573b;fill-opacity:1;stroke-width:0.264583"
d="M 1.308964 3.4395833 C 1.0179226 3.9436818 1.0179227 8.7563182 1.308964 9.2604167 L 6.35 6.35 L 6.35 3.4395833 L 1.308964 3.4395833 z " />
<path
id="path1739"
style="fill:#99cd61;fill-opacity:1;stroke-width:0.264583"
d="M 6.35 0.52916667 C 5.7679172 0.52916665 1.6000054 2.9354849 1.308964 3.4395833 L 6.35 6.35 L 6.35 0.52916667 z " />
<g
id="g379">
<g
id="g1657"
transform="matrix(0.87999988,0,0,0.87999988,-10.906495,-1.242093)">
<g
id="g7651"
transform="translate(13.259961,2.2775894)">
<path
id="path6659"
style="fill:#ffffff;stroke-width:0.264583"
d="m 6.3498163,2.9393223 c -0.3410461,0 -2.782726,1.4098777 -2.9532491,1.7052323 L 6.3498163,9.7602513 9.3035983,4.6445546 C 9.1330753,4.3492 6.6908624,2.9393223 6.3498163,2.9393223 Z"
transform="matrix(0.96974817,0,0,0.96974817,0.19209885,0.19209792)" />
</g>
<path
id="path461"
style="fill:#dfdfdf;fill-opacity:1;stroke-width:0.264583"
d="m 16.745875,6.9737355 2.863908,4.9609385 c 0.330729,0 2.69906,-1.367226 2.864424,-1.653646 0.165365,-0.2864204 0.165365,-3.0208729 0,-3.3072925 l -2.864424,1.6536459 z" />
</g>
<path
id="path5065"
style="fill:#d6d2d2;fill-opacity:1;stroke-width:0.264583"
d="m 3.8298625,4.8947933 c -0.1455111,0.2520549 -0.1455304,2.6583729 0,2.9104166 0.1455304,0.2520438 2.2292181,1.4552195 2.5202596,1.4552084 V 6.3500016 Z" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -0,0 +1,788 @@
/*
Cards and body styling
*/
// CARDS
.base-card {
padding: 1rem;
position: relative;
min-height: var(--font-size-2xl);
background-color: var(--surface-3);
border-radius: var(--radius-lg);
border: 1px solid var(--surface-4);
margin-bottom: var(--gap-md);
outline: 2px solid transparent;
.card__overlay {
position: absolute;
top: 1rem;
right: 1rem;
display: flex;
flex-direction: column;
align-items: flex-end;
grid-gap: 0.5rem;
z-index: 2;
}
&:where(&.warning, &.information) {
padding: 1.5rem;
line-height: 1.5;
min-height: 0;
a {
color: var(--color-blue);
text-decoration: underline;
}
}
&.moderation-card {
background-color: var(--color-warning-banner-bg);
}
&.recessed {
background-color: var(--color-bg);
box-shadow: none;
}
}
.universal-labels {
label,
.label {
:where(.label__title) {
display: block;
margin-block: var(--spacing-card-md) var(--spacing-card-sm);
// Same styling as h3
color: var(--color-text-primary);
font-size: 1.17rem;
font-weight: bold;
.required {
color: var(--color-red);
}
&.size-card-header {
font-size: var(--font-size-xl);
margin-bottom: 1rem;
}
}
:where(.label__description) {
display: block;
margin-block-end: var(--spacing-card-sm);
.label__subdescription {
display: block;
margin-block-start: var(--spacing-card-md);
}
}
:where(h1, h2, h3, h4) {
margin-block: 0;
}
}
}
.universal-body {
@extend .universal-labels;
> :where(input + *, .input-group + *, .chips + *, .input-div + *) {
&:not(:empty) {
margin-block-start: var(--spacing-card-md);
}
}
:where(button, .button, .iconified-button) {
width: fit-content;
}
.input-group {
input {
width: auto;
flex-basis: 0;
}
}
:where(input) {
box-sizing: border-box;
max-height: 40px;
max-width: 100%;
}
:where(.adjacent-input, &.adjacent-input) {
display: flex;
flex-direction: row;
align-items: center;
flex-wrap: wrap;
gap: var(--spacing-card-sm);
margin-bottom: calc(var(--spacing-card-sm) + var(--spacing-card-md));
.iconified-button,
.input-group {
flex-shrink: 0;
}
input {
flex-shrink: 1;
}
> :first-child {
flex-shrink: 2;
flex-grow: 1;
flex-basis: min-content;
}
label,
.label {
.label__title {
margin-block: 0;
}
.label__description {
margin-block-end: 0;
}
.label__description:not(:first-child) {
margin-top: var(--spacing-card-sm);
}
}
@media screen and (max-width: 750px) {
&:not(&.small) {
flex-direction: column;
align-items: flex-start;
}
}
}
h1 {
display: flex;
align-items: center;
}
.markdown-body h1 {
display: block;
}
> :first-child {
:first-child {
margin-block-start: 0;
}
margin-block-start: 0;
}
> :last-child {
margin-block-end: 0;
}
:where(.header__row) {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: var(--spacing-card-sm);
* {
flex-shrink: 0;
}
.header__title {
margin: 0;
flex-grow: 1;
}
&:not(:last-child) {
margin-bottom: var(--spacing-card-md);
}
}
}
.universal-card {
@extend .base-card;
@extend .universal-body;
}
.universal-modal {
@extend .universal-body;
padding: var(--spacing-card-bg);
display: flex;
flex-direction: column;
> p:first-child {
margin-top: 0;
}
@media screen and (max-width: 750px) {
.adjacent-input,
&.adjacent-input &:not(&.small) {
flex-direction: row;
align-items: center;
}
}
@media screen and (max-width: calc(600px + 2rem)) {
.adjacent-input,
&.adjacent-input &:not(&.small) {
flex-direction: column;
align-items: flex-start;
}
}
}
/*
Other
*/
.text-link {
color: var(--color-link);
&:focus-visible,
&:hover {
color: var(--color-link-hover);
cursor: pointer;
text-decoration: underline;
}
&:active {
color: var(--color-link-active);
}
}
.button-base {
@extend .button-animation;
font-weight: 500;
outline: 2px solid transparent;
&:focus-visible:not(&:disabled),
&:hover:not(&:disabled) {
cursor: pointer;
filter: brightness(0.85);
}
&:active:not(&:disabled) {
filter: brightness(0.8);
}
&:disabled,
&[disabled='true'] {
cursor: not-allowed;
filter: grayscale(50%);
opacity: 0.5;
box-shadow: none;
}
}
:not(tr).button-transparent {
@extend .button-base;
background-color: transparent;
border-radius: var(--size-rounded-sm);
&:focus-visible:not(&:disabled),
&:hover:not(&:disabled),
&:active:not(&:disabled) {
background-color: var(--color-raised-bg);
}
&.brand-button {
color: var(--color-brand);
}
&.danger-button {
color: var(--color-red);
}
}
tr.button-transparent {
@extend .button-animation;
background-color: transparent;
border-radius: var(--size-rounded-sm);
&:focus-visible:not(&:disabled) > *,
&:hover:not(&:disabled) > * {
cursor: pointer;
filter: brightness(0.85);
background-color: var(--color-raised-bg);
}
&:active:not(&:disabled) > * {
filter: brightness(0.8);
background-color: var(--color-raised-bg);
}
&:disabled > *,
&[disabled='true'] > * {
cursor: not-allowed;
filter: grayscale(50%);
opacity: 0.5;
box-shadow: none;
}
}
.button-color-base {
box-sizing: border-box;
--text-color: var(--color-button-text);
--background-color: var(--color-button-bg);
color: var(--text-color);
background-color: var(--background-color);
box-shadow:
var(--shadow-inset-sm),
0 0 0 0 transparent;
border-radius: var(--size-rounded-sm);
}
.iconified-button {
@extend .button-base;
@extend .button-color-base;
display: flex;
padding: var(--spacing-card-sm) var(--spacing-card-bg);
margin: 0;
font-size: var(--font-size-nm);
align-items: center;
cursor: pointer;
width: fit-content;
height: fit-content;
transition:
opacity 0.5s ease-in-out,
filter 0.2s ease-in-out,
scale 0.05s ease-in-out,
outline 0.2s ease-in-out;
text-decoration: none;
svg {
width: 1.1rem;
height: 1.1rem;
margin-right: 0.5rem;
}
&.icon-only {
padding: 0 0.5rem;
svg {
margin-right: 0;
}
}
&.transparent {
background: none;
box-shadow: none;
}
}
.square-button {
@extend .button-base;
--text-color: var(--color-button-text);
--background-color: var(--color-button-bg);
display: flex;
align-items: center;
justify-content: center;
height: 2.25rem;
width: 2.25rem;
border-radius: var(--size-rounded-sm);
color: var(--text-color);
background-color: var(--background-color);
box-shadow:
var(--shadow-inset-sm),
0 0 0 0 transparent;
svg {
min-width: 1.25rem;
max-width: 1.25rem;
min-height: 1.25rem;
max-height: 1.25rem;
}
flex-shrink: 0;
}
.raised-button {
--background-color: var(--color-raised-bg);
box-shadow: var(--shadow-inset-sm), var(--shadow-raised);
}
.danger-button {
--background-color: var(--color-red);
--text-color: var(--color-brand-inverted);
}
.moderation-button {
--background-color: var(--color-orange);
--text-color: var(--color-brand-inverted);
}
.brand-button {
--background-color: var(--color-brand);
--text-color: var(--color-brand-inverted);
}
.error {
.icon {
width: 8rem;
height: 8rem;
margin: 1.5rem 0;
}
.text {
margin-bottom: 2rem;
font-size: 1.25rem;
text-align: center;
}
.link {
cursor: pointer;
text-decoration: underline;
}
}
.text-input-wrapper.known-error,
input.known-error,
textarea.known-error {
outline: 2px solid var(--color-red);
background-color: var(--color-warning-bg) !important;
&::placeholder {
color: var(--color-warning-text);
}
}
.known-errors {
min-height: 0;
color: var(--color-red);
ul {
margin: 0;
}
}
.goto-link {
display: flex;
align-items: center;
gap: 3px;
color: var(--color-link);
}
.goto-link:hover,
.goto-link:focus-visible {
color: var(--color-link-hover);
text-decoration: underline;
}
.goto-link:active {
color: var(--color-link-active);
}
@media (prefers-reduced-motion) {
.button-animation,
button {
transform: none !important;
}
}
.push-right:not(.input-group),
.push-right.input-group > :first-child {
margin-left: auto;
margin-right: 0;
}
.full-width-inputs {
input,
.iconified-input {
width: 100%;
flex-basis: 100%;
}
}
input,
button {
&:disabled {
cursor: not-allowed !important;
}
}
.input-group {
display: flex;
flex-direction: row;
grid-gap: var(--spacing-card-sm);
flex-wrap: wrap;
max-width: 100%;
align-items: center;
input {
flex-shrink: 2;
}
&.shrink-first {
:first-child {
flex-shrink: 2;
flex-grow: 1;
flex-basis: min-content;
}
:not(:first-child) {
flex-shrink: 1;
}
}
&.right-aligned {
justify-content: end;
}
}
.text-input-wrapper {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
background: var(--color-button-bg);
width: fit-content;
border-radius: var(--size-rounded-sm);
box-shadow:
var(--shadow-inset-sm),
0 0 0 0 transparent;
transition: box-shadow 0.1s ease-in-out;
overflow: hidden;
max-width: 100%;
outline: 2px solid transparent;
.text-input-wrapper__before {
display: flex;
color: var(--color-text);
padding: 0.5rem 0 0.5rem 1rem;
font-weight: var(--font-weight-medium);
min-height: 36px;
box-sizing: border-box;
width: fit-content;
align-items: center;
filter: grayscale(50%);
opacity: 0.5;
box-shadow: none;
flex-shrink: 0;
user-select: none;
}
input,
textarea {
border-radius: 0;
background-color: transparent;
box-shadow: unset !important;
padding-left: 0;
flex-grow: 1;
outline: none !important;
}
&:focus,
&:focus-visible,
&:focus-within {
box-shadow:
inset 0 0 0 transparent,
0 0 0 0.25rem var(--color-brand-shadow);
color: var(--color-button-text-active);
}
}
.project-list {
width: 100%;
gap: var(--spacing-card-md);
overflow: hidden;
&:not(:first-child) {
margin-top: var(--spacing-card-md);
}
&:not(:empty) {
margin-bottom: var(--spacing-card-md);
}
}
.project-list.display-mode--list {
display: flex;
flex-direction: column;
}
.project-list.display-mode--gallery {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
@media screen and (max-width: 750px) {
grid-template-columns: repeat(1, minmax(0, 1fr));
}
}
.project-list.display-mode--grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
@media screen and (max-width: 80rem) {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media screen and (max-width: 1024px) {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media screen and (max-width: 860px) {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media screen and (max-width: 550px) {
display: flex;
flex-direction: column;
}
}
.wrap-as-needed {
overflow-wrap: break-word;
word-wrap: break-word;
word-break: break-word;
-webkit-hyphens: auto;
hyphens: auto;
}
.sr-only {
position: absolute;
width: 0;
height: 0;
overflow: hidden;
}
.backed-svg {
--size: 2.5rem;
border-radius: var(--size-rounded-sm);
background-color: var(--color-button-bg);
width: var(--size);
height: var(--size);
display: inline-flex;
justify-content: center;
align-items: center;
svg {
width: calc(0.6 * var(--size));
height: calc(0.6 * var(--size));
}
&.circle {
border-radius: 50%;
}
&.raised {
background-color: var(--color-raised-bg);
}
}
a.iconified-link,
a.iconified-stacked-link {
display: contents;
.space {
opacity: 0;
}
.title {
font-weight: bold;
}
.stacked {
display: inline-flex;
flex-direction: column;
}
&:focus-visible .title,
&:hover .title {
text-decoration: underline;
filter: var(--hover-filter);
}
&:active .title {
filter: var(--active-filter);
}
}
a.iconified-link {
&:focus-visible span,
&:hover span {
text-decoration: underline;
filter: var(--hover-filter);
}
&:active span {
filter: var(--active-filter);
}
}
.inline-svg svg,
svg.inline-svg {
vertical-align: middle;
}
// START STUFF FOR OMORPHIA
.flex-card {
h2 {
@apply font-semibold;
font-size: var(--text-18);
color: var(--color-contrast);
line-height: initial;
margin: 0;
}
h3 {
@apply font-semibold;
font-size: var(--text-16);
color: var(--color-base);
margin: 0;
}
> section {
display: flex;
flex-direction: column;
gap: var(--gap-8);
}
}
.list-style {
display: flex;
flex-direction: column;
gap: var(--gap-12);
font-weight: var(--weight-bold);
hr {
width: 100%;
border-color: var(--color-button-border);
margin-block: var(--gap-2);
}
}
.iconified-list-item {
display: flex;
gap: var(--gap-8);
vertical-align: middle;
align-items: center;
width: fit-content;
svg {
width: var(--icon-16);
height: var(--icon-16);
}
> svg:first-child {
flex-shrink: 0;
}
}
.details-list {
@extend .list-style;
}
.details-list__item {
@apply font-normal;
@extend .iconified-list-item;
}
.card-shadow {
box-shadow: var(--shadow-card);
}

View File

@ -0,0 +1,506 @@
@import '@modrinth/assets/styles/reset.scss';
// 主题化图标:图标组件同时渲染暗色/亮色两版,由主题类切换显示
.dark-icon {
display: block;
}
.light-icon {
display: none;
}
.light-mode .dark-icon {
display: none;
}
.light-mode .light-icon {
display: block;
}
html {
--dark-color-text: #b0bac5;
--dark-color-text-dark: #ecf9fb;
--color-text-secondary: var(--color-icon);
}
// TO BE MOVED TO OMORPHIA
:root {
--gap-2: 0.125rem;
--gap-4: calc(2 * var(--gap-2));
--gap-6: calc(3 * var(--gap-2));
--gap-8: calc(2 * var(--gap-4));
--gap-12: calc(3 * var(--gap-4));
--gap-16: calc(2 * var(--gap-8));
--gap-24: calc(3 * var(--gap-8));
--radius-card: 1rem;
--radius-btn: 0.75rem;
--radius-btn-large: 1rem;
--radius-btn-circle: var(--radius-max);
--text-14: 0.875rem;
--text-16: 1rem;
--text-18: 1.125rem;
--text-24: 1.5rem;
--text-32: 2rem;
--weight-normal: 500; // used for general body text
--weight-bold: 600; // used for text needing extra emphasis
--weight-extrabold: 800; // used for main titles and headings
--icon-14: 0.875rem; // used for icons inside a small container alongside a label
--icon-16: 1rem; // used for normal-sized icons alongside a label
--icon-20: 1.25rem; // used for icons in normal sized buttons
--icon-24: 1.5rem; // used for icons that are used as a primary label or in large buttons
--icon-32: 2rem;
interpolate-size: allow-keywords;
scrollbar-gutter: stable;
}
.light-mode {
--color-icon: var(--color-secondary);
--color-text: hsl(221, 39%, 11%);
--color-text-inactive: hsl(215, 14%, 34%);
--color-text-dark: #1a202c;
--color-heading: #2c313d;
--color-text-inverted: var(--color-bg);
--color-bg-inverted: var(--color-text);
--color-brand-inverted: #ffffff;
--tab-underline-hovered: #e2e8f0;
--color-button-text: var(--color-text-dark);
--color-button-bg-hover: #d9dce0;
--color-button-text-hover: #1b1e24;
--color-button-bg-active: #c3c6cb;
--color-button-text-active: var(--color-button-text-hover);
--color-dropdown-bg: var(--color-button-bg);
--color-dropdown-text: var(--color-button-text);
--color-code-bg: var(--color-bg);
--color-code-text: var(--color-text-dark);
--color-kbd-shadow: rgba(0, 0, 0, 0.25);
--color-grey-link: var(--color-text);
--color-grey-link-hover: var(--color-heading);
--color-grey-link-active: var(--color-text-dark);
--color-warning-bg: hsl(355, 70%, 88%);
--color-warning-text: hsl(342, 70%, 35%);
--color-warning-banner-text: hsl(0, 11%, 16%);
--color-warning-banner-bg: hsl(0, 100%, 95%);
--color-warning-banner-side: hsl(357, 78%, 40%);
--color-info-banner-text: var(--color-text);
--color-info-banner-bg: var(--color-ad);
--color-info-banner-side: var(--color-blue);
--color-block-quote: var(--color-tooltip-bg);
--color-header-underline: var(--color-divider-dark);
--color-hr: var(--color-text);
--color-table-border: #dfe2e5;
--color-table-alternate-row: #f0f1f2;
--landing-maze-bg: url('https://cdn.modrinth.com/landing-new/landing-light.webp');
--landing-maze-gradient-bg: url('https://cdn.modrinth.com/landing-new/landing-lower-light.webp');
--landing-maze-outer-bg: linear-gradient(180deg, #f0f0f0 0%, #ffffff 100%);
--landing-color-heading: #000;
--landing-color-subheading: #3a3f45;
--landing-transition-gradient-start: rgba(255, 255, 255, 0);
--landing-transition-gradient-end: #ffffff;
--landing-hover-card-gradient: radial-gradient(
50% 50% at 50% 50%,
#fff 0%,
rgba(204, 204, 204, 0.77) 100%
);
--landing-border-gradient: linear-gradient(
to bottom right,
rgba(129, 137, 175, 0.75) 0%,
rgba(66, 71, 97, 0.34) 100%
);
--landing-border-color: rgba(129, 137, 175, 0.55);
--landing-creator-gradient: linear-gradient(180deg, #f8f8f8 0%, #f8f8f8 63.19%);
--landing-blob-gradient: radial-gradient(
50% 50% at 50% 50%,
rgba(255, 255, 255, 0.35) 0%,
rgba(255, 255, 255, 0.2695) 100%
);
--landing-blob-shadow:
2px 2px 12px rgba(0, 0, 0, 0.16), inset 2px 2px 64px rgba(255, 255, 255, 0.45);
--landing-card-bg: rgba(255, 255, 255, 0.8);
--landing-card-shadow: 2px 2px 12px rgba(0, 0, 0, 0.16);
--landing-blue-label: #0098ba;
--landing-blue-label-bg: rgba(0, 177, 216, 0.15);
--landing-green-label: #00a936;
--landing-green-label-bg: rgba(0, 216, 69, 0.15);
--landing-raw-bg: #fff;
--medal-promotion-bg: #fff;
--medal-promotion-bg-orange: #48aaff;
--medal-promotion-text-orange: #156db8;
--medal-promotion-bg-gradient: linear-gradient(
90deg,
rgba(152, 207, 255, 0.2) 20%,
rgba(152, 207, 255, 0.1) 100%
);
--banner-error-bg: #fee2e2;
--banner-error-text: #991b1b;
--banner-error-border: #ef4444;
--banner-warning-bg: #ffedd5;
--banner-warning-text: #713f12;
--banner-warning-border: #f97316;
--banner-info-bg: #dbeafe;
--banner-info-text: #1e3a8a;
--banner-info-border: #3b82f6;
}
.dark,
.dark-mode,
.oled-mode,
.retro-mode {
--color-icon: var(--color-secondary);
--color-text: var(--dark-color-text);
--color-text-inactive: #929aa3;
--color-text-dark: var(--dark-color-text-dark);
--color-heading: #c4cfdd;
--color-text-inverted: var(--color-bg);
--color-bg-inverted: var(--color-text);
--color-brand-inverted: #000;
--tab-underline-hovered: #414146;
--color-button-text: var(--color-text);
--color-button-bg-hover: #494f58;
--color-button-text-hover: #ffffff;
--color-button-bg-active: #616570;
--color-button-text-active: var(--color-button-text-hover);
--color-dropdown-bg: var(--color-button-bg);
--color-dropdown-text: var(--color-button-text);
--color-code-bg: var(--color-button-bg);
--color-code-text: var(--color-text-dark);
--color-kbd-shadow: rgba(0, 0, 0, 0.35);
--color-warning-bg: hsl(355, 70%, 20%);
--color-warning-text: hsl(342, 70%, 75%);
--color-warning-banner-text: hsl(0, 100%, 96%);
--color-warning-banner-bg: hsl(356, 18%, 18%);
--color-warning-banner-side: hsl(357, 78%, 40%);
--color-info-banner-text: var(--color-text);
--color-info-banner-bg: var(--color-ad);
--color-info-banner-side: var(--color-blue);
--color-block-quote: var(--color-code-bg);
--color-header-underline: var(--color-divider-dark);
--color-hr: var(--color-text);
--color-table-border: #4f5864;
--color-table-alternate-row: #202228;
--landing-maze-bg: url('https://cdn.modrinth.com/landing-new/landing.webp');
--landing-maze-gradient-bg:
linear-gradient(0deg, #31375f 0%, rgba(8, 14, 55, 0) 100%),
url('https://cdn.modrinth.com/landing-new/landing-lower.webp');
--landing-maze-outer-bg: linear-gradient(180deg, #06060d 0%, #000000 100%);
--landing-color-heading: #fff;
--landing-color-subheading: #afb6be;
--landing-transition-gradient-start: rgba(14, 16, 32, 0);
--landing-transition-gradient-end: #060a1c;
--landing-hover-card-gradient: radial-gradient(
50% 50% at 50% 50%,
#2c304f 0%,
rgba(32, 35, 50, 0.77) 100%
);
--landing-border-gradient: linear-gradient(
to bottom right,
rgba(168, 177, 221, 0.75) 0%,
rgba(168, 177, 221, 0.18) 100%
);
--landing-border-color: rgba(168, 177, 221, 0.55);
--landing-creator-gradient: linear-gradient(180deg, #000000 0%, #0e101d 100%);
--landing-blob-gradient: radial-gradient(
50% 50% at 50% 50%,
rgba(44, 48, 79, 0.35) 0%,
rgba(32, 35, 50, 0.2695) 100%
);
--landing-blob-shadow:
2px 2px 12px rgba(0, 0, 0, 0.16), inset 2px 2px 64px rgba(57, 61, 94, 0.45);
--landing-card-bg: rgba(59, 63, 85, 0.15);
--landing-card-shadow: 2px 2px 12px rgba(0, 0, 0, 0.16);
--landing-blue-label: #10c0e7;
--landing-blue-label-bg: rgba(0, 177, 216, 0.15);
--landing-green-label: #00d845;
--landing-green-label-bg: rgba(0, 216, 69, 0.15);
--landing-raw-bg: #000;
--medal-promotion-bg: #000;
--medal-promotion-bg-orange: rgba(208, 246, 255, 0.25);
--medal-promotion-text-orange: #42abff;
--medal-promotion-bg-gradient: linear-gradient(
90deg,
rgba(66, 170, 255, 0.15),
rgba(0, 0, 0, 0) 100%
);
--hover-filter: brightness(120%);
--active-filter: brightness(140%);
--banner-error-bg: #45222c;
--banner-error-text: #fee2e2;
--banner-error-border: var(--color-red);
--banner-warning-bg: #453425;
--banner-warning-text: #e4d9ca;
--banner-warning-border: var(--color-orange);
--banner-info-bg: #28374b;
--banner-info-text: #dbeafe;
--banner-info-border: var(--color-blue);
}
.oled-mode {
--color-button-bg-hover: #2d2d32;
--color-button-bg-active: #3c3c40;
--color-table-alternate-row: #19191c;
--color-divider-dark: #2c3134;
--color-warning-banner-bg: hsl(0, 45%, 11%);
}
.retro-mode {
--color-bg: #191917;
--color-raised-bg: #1d1e1b;
--color-button-bg: #3a3b38;
--color-base: #c3c4b3;
--color-secondary: #777a74;
--color-contrast: #e6e2d1;
--color-brand: #4d9227;
--color-brand-highlight: #25421e;
--color-ad: var(--color-brand-highlight);
--color-ad-raised: var(--color-brand);
--color-ad-contrast: black;
--color-ad-highlight: var(--color-brand);
--color-red: rgb(232, 32, 13);
--color-orange: rgb(232, 141, 13);
--color-green: rgb(60, 219, 54);
--color-blue: rgb(9, 159, 239);
--color-purple: rgb(139, 129, 230);
--color-gray: #718096;
--color-red-highlight: rgba(232, 32, 13, 0.25);
--color-orange-highlight: rgba(232, 141, 13, 0.25);
--color-green-highlight: rgba(60, 219, 54, 0.25);
--color-blue-highlight: rgba(9, 159, 239, 0.25);
--color-purple-highlight: rgba(139, 129, 230, 0.25);
--color-gray-highlight: rgba(113, 128, 150, 0.25);
}
body {
// Defaults
background-color: var(--color-bg);
color: var(--color-text);
--font-standard:
Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Oxygen, Ubuntu, Roboto, Cantarell,
Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
--mono-font: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
font-family: var(--font-standard);
font-size: 16px;
font-weight: var(--font-weight-regular);
margin: 0;
padding: 0;
// Rounding sizes
--size-rounded-xs: 0.5rem;
--size-rounded-sm: 0.75rem;
--size-rounded-md: 1rem;
--size-rounded-lg: 1.25rem;
--size-rounded-max: 999999999px;
--size-rounded-card: 1rem;
--size-rounded-icon: 1rem;
--size-rounded-control: 0.25rem;
--size-rounded-tooltip: 0.25rem;
--size-navbar-height: 3.5rem;
--size-mobile-navbar-height: 3.5rem;
--size-mobile-navbar-height-expanded: 26.5rem;
--spacing-card-lg: 1.5rem;
--spacing-card-bg: 1rem;
--spacing-card-md: 0.75rem;
--spacing-card-sm: 0.5rem;
--spacing-card-xs: 0.25rem;
// Font Sizes
--font-size-xxs: 0.625rem; //10px
--font-size-xs: 0.75rem; //12px
--font-size-sm: 0.875rem; //14px
--font-size-nm: 1rem; //16px
--font-size-md: 1.125rem; //18px
--font-size-lg: 1.25rem; //20px
--font-size-xl: 1.5rem; //24px
--font-size-2xl: 2rem; //32px
--font-size-3xl: 3rem; //48px
// Font Weights
--font-weight-regular: 400;
--font-weight-medium: 500;
--font-weight-bold: 700;
--font-weight-extrabold: 800;
--font-weight-text: var(--font-weight-medium);
--font-weight-heading: var(--font-weight-extrabold);
--font-weight-title: var(--font-weight-extrabold);
@media screen and (min-width: 354px) {
--size-mobile-navbar-height-expanded: 15.5rem;
}
}
svg {
height: 1em;
width: 1em;
}
a {
color: inherit;
text-decoration: none;
}
h1 {
color: var(--color-text-primary);
}
h2 {
margin-top: 0;
margin-bottom: 1rem;
color: var(--color-text-primary);
}
h3 {
margin-block: var(--spacing-card-md) var(--spacing-card-sm);
color: var(--color-text-primary);
}
input {
border-radius: var(--size-rounded-sm);
box-sizing: border-box;
border: 2px solid transparent;
// safari iOS rounds inputs by default
// set the appearance to none to prevent this
appearance: none !important;
}
pre {
font-weight: var(--font-weight-regular);
}
input,
textarea {
background: var(--color-button-bg);
color: var(--color-text);
padding: 0.5rem 1rem;
font-weight: var(--font-weight-medium);
border: none;
outline: 2px solid transparent;
box-shadow:
var(--shadow-inset-sm),
0 0 0 0 transparent;
transition: box-shadow 0.1s ease-in-out;
min-height: 36px;
&:focus,
&:focus-visible {
box-shadow:
inset 0 0 0 transparent,
0 0 0 0.25rem var(--color-brand-shadow);
color: var(--color-button-text-active);
}
&:disabled,
&[disabled='true'] {
opacity: 0.6;
pointer-events: none;
cursor: not-allowed;
}
&:focus::placeholder {
opacity: 0.8;
}
&::placeholder {
color: var(--color-button-text);
opacity: 0.6;
}
}
kbd {
background-color: var(--color-code-bg);
color: var(--color-code-text);
box-shadow: 0 2px 1px var(--color-kbd-shadow);
padding: 0.2em 0.5em 0.1em;
border-radius: 3px;
line-height: 1;
font-size: 0.85em !important;
}
@import './layout.scss';
@import './utils.scss';
@import './components.scss';
// OMORPHIA FIXES
.card {
outline-offset: -2px;
}
input {
outline: 2px solid transparent !important;
}
.button-animation {
transition:
opacity 0.5s ease-in-out,
filter 0.2s ease-in-out,
transform 0.05s ease-in-out,
outline-width 0.2s ease-in-out;
}
.button-transparent {
box-shadow: none;
}
.qc-cmp2-close-tooltip {
background-color: transparent;
color: hsl(145, 78%, 28%);
}

View File

@ -0,0 +1,161 @@
.page-container {
margin: var(--spacing-card-md);
margin-top: 0;
.page-contents {
display: flex;
flex-direction: column;
.content {
width: 100%;
}
@media screen and (min-width: 1024px) {
flex-direction: row;
//max-width: 1280px;
margin-left: auto;
margin-right: auto;
}
}
}
.normal-page {
display: grid;
padding: 0 1.5rem;
grid-template:
'header'
'sidebar'
'content'
'info'
/ 100%;
@media screen and (max-width: 1024px) {
margin-top: 1.5rem;
padding: 0 1rem;
}
.normal-page__sidebar {
grid-area: sidebar;
}
.normal-page__info {
grid-area: info;
}
.normal-page__content {
grid-area: content;
width: 100%;
min-width: 0;
}
.normal-page__header {
grid-area: header;
}
}
@media (min-width: 1024px) {
.full-page {
margin: 0 auto;
max-width: min(1280px, 100vw);
width: 80rem;
}
.normal-page {
margin: 0 auto;
max-width: 80rem;
column-gap: 0.75rem;
grid-template:
'sidebar content' auto
'info content' auto
'dummy content' 1fr
/ 18.75rem 1fr;
&.alt-layout {
grid-template:
'content sidebar' auto
'content info' auto
'content dummy' 1fr
/ 1fr 18.75rem;
}
&.no-sidebar {
grid-template:
'header header' auto
'content content' auto
'info info' auto
'dummy dummy' 1fr
/ 1fr 1fr;
.normal-page__content {
grid-area: content;
max-width: 100%;
}
}
}
.normal-page__sidebar {
min-width: 18.75rem;
width: 18.75rem;
}
.normal-page__content {
width: 100%;
min-width: 0;
max-width: calc(80rem - 18.75rem - 1.5rem);
//overflow-x: hidden;
}
}
.new-page {
display: grid;
margin: 0 auto;
max-width: 80rem;
column-gap: 0.75rem;
padding: 0 1.5rem;
padding-bottom: 1.5rem;
grid-template:
'header'
'content'
'sidebar'
/ 100%;
@media screen and (min-width: 1024px) {
&.sidebar {
grid-template:
'header header' auto
'content sidebar' auto
'content dummy' 1fr
/ 1fr 18.75rem;
&.alt-layout {
grid-template:
'header header' auto
'sidebar content' auto
'dummy content' 1fr
/ 18.75rem 1fr;
}
}
.normal-page__sidebar {
min-width: 18.75rem;
width: 18.75rem;
}
}
.normal-page__sidebar {
grid-area: sidebar;
}
.normal-page__content {
grid-area: content;
width: 100%;
min-width: 0;
max-width: calc(80rem - 18.75rem - 1.5rem);
//overflow-x: hidden;
}
.normal-page__header {
grid-area: header;
}
}

View File

@ -0,0 +1,11 @@
@import '@modrinth/ui/src/styles/tailwind-utilities.css';
@tailwind base;
@tailwind components;
@tailwind utilities;
h1,
h2,
h3 {
@apply font-bold;
}

View File

@ -0,0 +1,27 @@
body {
overflow-y: scroll;
overflow-x: hidden;
}
.text-container p {
line-height: 1.3;
}
// From the Bootstrap project
// The MIT License (MIT)
// Copyright (c) 2011-2023 The Bootstrap Authors
// https://github.com/twbs/bootstrap/blob/2f617215755b066904248525a8c56ea425dde871/scss/mixins/_visually-hidden.scss#L8
.visually-hidden {
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
white-space: nowrap !important;
border: 0 !important;
&:not(caption) {
position: absolute !important;
}
}