-
Notifications
You must be signed in to change notification settings - Fork 5
Add package management tools #1507
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -1,14 +1,41 @@ | ||||||||||||||||||||||||||||||||||||||||||||||
@layer nimbus-layout { | ||||||||||||||||||||||||||||||||||||||||||||||
.community { | ||||||||||||||||||||||||||||||||||||||||||||||
--nimbus-layout-content-max-width: 120rem; | ||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||
.community__heading { | ||||||||||||||||||||||||||||||||||||||||||||||
z-index: 1; | ||||||||||||||||||||||||||||||||||||||||||||||
display: flex; | ||||||||||||||||||||||||||||||||||||||||||||||
gap: var(--gap-xl); | ||||||||||||||||||||||||||||||||||||||||||||||
align-items: center; | ||||||||||||||||||||||||||||||||||||||||||||||
flex-direction: column; | ||||||||||||||||||||||||||||||||||||||||||||||
gap: 1rem; | ||||||||||||||||||||||||||||||||||||||||||||||
align-items: flex-start; | ||||||||||||||||||||||||||||||||||||||||||||||
align-self: stretch; | ||||||||||||||||||||||||||||||||||||||||||||||
padding: var(--space-8) 0 var(--space-20); | ||||||||||||||||||||||||||||||||||||||||||||||
padding: 7.5rem 3rem 2rem; | ||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||
.community__background { | ||||||||||||||||||||||||||||||||||||||||||||||
position: absolute; | ||||||||||||||||||||||||||||||||||||||||||||||
display: flex; | ||||||||||||||||||||||||||||||||||||||||||||||
flex-direction: column; | ||||||||||||||||||||||||||||||||||||||||||||||
align-items: flex-start; | ||||||||||||||||||||||||||||||||||||||||||||||
height: 20rem; | ||||||||||||||||||||||||||||||||||||||||||||||
border-radius: var(--section-border-radius); | ||||||||||||||||||||||||||||||||||||||||||||||
overflow: hidden; | ||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+14
to
+22
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Background container lacks sizing and stacking; can render unpredictably As an absolutely positioned sibling, .community__background {
position: absolute;
display: flex;
flex-direction: column;
align-items: flex-start;
height: 20rem;
border-radius: var(--section-border-radius);
overflow: hidden;
+ inset: 0 auto auto 0; /* top/left pinned */
+ width: 100%;
+ z-index: 0; /* ensure it's behind content */
+ pointer-events: none; /* avoid intercepting clicks on links above */
} 📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents
|
||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||
.community__background-image { | ||||||||||||||||||||||||||||||||||||||||||||||
display: flex; | ||||||||||||||||||||||||||||||||||||||||||||||
flex-direction: column; | ||||||||||||||||||||||||||||||||||||||||||||||
align-items: flex-start; | ||||||||||||||||||||||||||||||||||||||||||||||
background: var(--color-body-bg-color, #101028); | ||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||
opacity: 0.4; | ||||||||||||||||||||||||||||||||||||||||||||||
mix-blend-mode: luminosity; | ||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+24
to
+32
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Image styles on
.community__background-image {
- display: flex;
- flex-direction: column;
- align-items: flex-start;
- background: var(--color-body-bg-color, #101028);
-
- opacity: 0.4;
- mix-blend-mode: luminosity;
+ display: block;
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ opacity: 0.4;
+ mix-blend-mode: luminosity;
} 📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents
|
||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||
.community__background-tint { | ||||||||||||||||||||||||||||||||||||||||||||||
position: absolute; | ||||||||||||||||||||||||||||||||||||||||||||||
width: 100%; | ||||||||||||||||||||||||||||||||||||||||||||||
height: 20rem; | ||||||||||||||||||||||||||||||||||||||||||||||
background: linear-gradient(180deg, rgb(16 16 40 / 0.4) 0%, #101028 85.94%); | ||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||
.community__small-image { | ||||||||||||||||||||||||||||||||||||||||||||||
|
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -176,66 +176,74 @@ export default function Community() { | |||||||||||||||||||||||||||||||||||||||||||||||||||
const outletContext = useOutletContext() as OutletContextShape; | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
return ( | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<div className="container container--y container--full layout__content community"> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<NewBreadCrumbs> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<NewBreadCrumbsLink | ||||||||||||||||||||||||||||||||||||||||||||||||||||
primitiveType="cyberstormLink" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
linkId="Communities" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
csVariant="cyber" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Communities | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</NewBreadCrumbsLink> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<span> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<span>{community.name}</span> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</span> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</NewBreadCrumbs> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<section className="container container--y container--full"> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<div className="container container--x community__heading"> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<PageHeader | ||||||||||||||||||||||||||||||||||||||||||||||||||||
headingLevel="1" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
headingSize="3" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
variant="simple" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
icon={community.community_icon_url} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
meta={ | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
{community.wiki_url ? ( | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<NewLink | ||||||||||||||||||||||||||||||||||||||||||||||||||||
primitiveType="link" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
href={community.wiki_url} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
csVariant="cyber" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
rootClasses="community__item" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<NewIcon csMode="inline" noWrapper> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<FontAwesomeIcon icon={faBook} /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</NewIcon> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<span>Modding Wiki</span> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<NewIcon csMode="inline" noWrapper> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<FontAwesomeIcon icon={faArrowUpRight} /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</NewIcon> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</NewLink> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
) : null} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
{community.discord_url ? ( | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<NewLink | ||||||||||||||||||||||||||||||||||||||||||||||||||||
primitiveType="link" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
href={community.discord_url} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
csVariant="cyber" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
rootClasses="community__item" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<NewIcon csMode="inline" noWrapper> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<FontAwesomeIcon icon={faDiscord} /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</NewIcon> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<span>Modding Discord</span> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<NewIcon csMode="inline" noWrapper> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<FontAwesomeIcon icon={faArrowUpRight} /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</NewIcon> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</NewLink> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
) : null} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<div className="community__background"> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
{community.hero_image_url ? ( | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<img | ||||||||||||||||||||||||||||||||||||||||||||||||||||
src={community.hero_image_url} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
alt={community.name} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
className="community__background-image" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
/> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
) : null} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<div className="community__background-tint" /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</div> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<div className="container container--y container--full layout__content community"> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+179
to
+190
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Hero background is absolutely positioned without a positioned ancestor; likely misaligned/overflowing The Two fixes (pick one):
If you choose the first approach, apply this DOM change and the CSS changes suggested in Community.css review. Apply this diff to move the background inside the container: - <>
- <div className="community__background">
+ <>
+ <div className="container container--y container--full layout__content community">
+ <div className="community__background">
{community.hero_image_url ? (
<img
src={community.hero_image_url}
alt={community.name}
className="community__background-image"
/>
) : null}
<div className="community__background-tint" />
- </div>
- <div className="container container--y container--full layout__content community">
+ </div>
<NewBreadCrumbs> 📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
<NewBreadCrumbs> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<NewBreadCrumbsLink | ||||||||||||||||||||||||||||||||||||||||||||||||||||
primitiveType="cyberstormLink" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
linkId="Communities" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
csVariant="cyber" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
{community.name} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</PageHeader> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</div> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Communities | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</NewBreadCrumbsLink> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<span> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<span>{community.name}</span> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</span> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</NewBreadCrumbs> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<PageHeader | ||||||||||||||||||||||||||||||||||||||||||||||||||||
headingLevel="1" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
headingSize="3" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
variant="simple" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
icon={community.community_icon_url} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
meta={ | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
{community.wiki_url ? ( | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<NewLink | ||||||||||||||||||||||||||||||||||||||||||||||||||||
primitiveType="link" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
href={community.wiki_url} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
csVariant="cyber" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
rootClasses="community__item" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<NewIcon csMode="inline" noWrapper> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<FontAwesomeIcon icon={faBook} /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</NewIcon> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<span>Modding Wiki</span> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<NewIcon csMode="inline" noWrapper> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<FontAwesomeIcon icon={faArrowUpRight} /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</NewIcon> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</NewLink> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
) : null} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
{community.discord_url ? ( | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<NewLink | ||||||||||||||||||||||||||||||||||||||||||||||||||||
primitiveType="link" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
href={community.discord_url} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
csVariant="cyber" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
rootClasses="community__item" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<NewIcon csMode="inline" noWrapper> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<FontAwesomeIcon icon={faDiscord} /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</NewIcon> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<span>Modding Discord</span> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<NewIcon csMode="inline" noWrapper> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<FontAwesomeIcon icon={faArrowUpRight} /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</NewIcon> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</NewLink> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
) : null} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
{community.name} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</PageHeader> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
<PackageSearch | ||||||||||||||||||||||||||||||||||||||||||||||||||||
listings={listings} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
packageCategories={filters.package_categories} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -244,7 +252,7 @@ export default function Community() { | |||||||||||||||||||||||||||||||||||||||||||||||||||
currentUser={outletContext.currentUser} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
dapper={outletContext.dapper} | ||||||||||||||||||||||||||||||||||||||||||||||||||||
/> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</section> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</div> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</div> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
</> | ||||||||||||||||||||||||||||||||||||||||||||||||||||
); | ||||||||||||||||||||||||||||||||||||||||||||||||||||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
@layer nimbus-layout { | ||
.package-edit { | ||
--nimbus-layout-content-max-width: 90rem; | ||
} | ||
|
||
.package-edit__main { | ||
display: flex; | ||
gap: var(--gap-xxxl); | ||
align-items: center; | ||
align-self: stretch; | ||
} | ||
|
||
.package-edit__section { | ||
display: flex; | ||
flex: 1 1 0; | ||
flex-direction: column; | ||
gap: 3rem; | ||
align-items: stretch; | ||
} | ||
|
||
.package-edit__divider { | ||
align-self: stretch; | ||
height: 0.063rem; | ||
background: linear-gradient(0deg, #23234d 0%, #23234d 100%); | ||
} | ||
|
||
.package-edit__row { | ||
display: flex; | ||
flex: 1 1 0; | ||
gap: 5rem; | ||
align-items: flex-start; | ||
justify-content: space-between; | ||
} | ||
|
||
.package-edit__row-content { | ||
display: flex; | ||
flex: 1 1 0; | ||
gap: var(--gap-md); | ||
} | ||
|
||
.package-edit__info { | ||
display: flex; | ||
flex-direction: column; | ||
gap: 0.5rem; | ||
align-items: flex-start; | ||
align-self: stretch; | ||
width: 21rem; | ||
} | ||
|
||
.package-edit__title { | ||
align-self: stretch; | ||
color: var(--color-text-primary); | ||
font-weight: var(--font-weight-bold); | ||
font-size: var(--font-size-body-lg); | ||
line-height: var(--line-height-auto); | ||
} | ||
|
||
.package-edit__description { | ||
align-self: stretch; | ||
color: var(--color-text-tertiary); | ||
font-weight: var(--font-weight-medium); | ||
font-size: var(--font-size-body-md); | ||
line-height: var(--line-height-md); | ||
} | ||
|
||
.package-edit__status { | ||
display: flex; | ||
flex: 1 0 0; | ||
flex-direction: column; | ||
gap: 0.75rem; | ||
align-items: flex-start; | ||
} | ||
|
||
.package-edit__status-description { | ||
color: var(--color-text-tertiary); | ||
font-weight: var(--font-weight-regular); | ||
|
||
font-size: var(--font-size-body-sm); | ||
line-height: var(--line-height-auto); | ||
} | ||
|
||
.package-edit__actions { | ||
display: flex; | ||
flex: 1 0 0; | ||
flex-direction: row; | ||
gap: var(--gap-md); | ||
} | ||
|
||
.package-edit__save-button { | ||
flex: 1 0 0; | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Anchor the absolute hero background to the community container
Add
position: relative
(and consider a stacking context) so the absolutely positioned background is scoped to.community
. This also helps ensure border radius and overflow apply as intended..community { --nimbus-layout-content-max-width: 120rem; z-index: 1; + position: relative; display: flex; flex-direction: column; gap: 1rem; align-items: flex-start; align-self: stretch; padding: 7.5rem 3rem 2rem; }
🤖 Prompt for AI Agents