The webpages are automatically loaded into CampusGroups. Pages edited here will automatically update in CampusGroups.
This project uses Node.js and NPM.
You can go to https://nodejs.org/en/download/ for steps to install both.
You will need git to download and update the files. You can go to https://github.com/git-guides/install-git for steps to install git.
It's recommended you use a code editor such as Visual Studio Code so that you can easily make changes and push them to the website.
Copy the files onto your machine by running the following command in your terminal
git clone https://github.com/OUTspoken-RIT/website.git
cd websiteThe website uses React and Next.js to convert custom components into a webpage. You can install both with the following command
npm installYou can see your changes while editing by running the following command
npm run devIt will allow you to view the website on your machine in real-time.
You can push your changes to the website by running the following command
git add .
git commit -m "your message"
git pushThe repo is split into 4 main folders:
website
├─ pages
├─ components
├─ styles
└─ utils
Full pages made up of the premade components.
website
└─ pages
├─ closet.jsx
├─ clubs.jsx
├─ index.jsx
└─ team.jsx
These are the page files that are loaded directly into CampusGroups. These pages can be edited by editing these files.
UI components (buttons, icons, boxes, cards, etc.) that are used to create the webpages.
website
└─ components
├─ ui
├─ layouts
└─ composite
| ui | low-level one-function components like buttons, icons, logos, and containers |
| layouts | used for organizing objects on the page |
| composite | components made up of many other components (cards, infoboxes, etc) |
The CSS files that control how content is displayed on each page.
website
└─ styles
├─ variables
├─ buttons.css
├─ colors.css
├─ composite.css
├─ containers.css
├─ globals.css
├─ icons.css
├─ layouts.css
├─ reset.css
├─ type.css
└─ underline.css
| variables | sets root variables defining colors, heading styles, margin and padding, underline flags, etc. |
| buttons | styles for buttons and icon buttons |
| colors | styles for controlling the background of containers |
| composite | styles for composite components |
| containers | styles for boxes and simple cards |
| globals | aggregates all styles and exports them together |
| icons | styles for icons |
| layouts | styles for layout components |
| reset | reverts styles set by CampusGroups |
| type | styles for headings and other text-focused elements |
| underline | styles for regular and flag underlines |
All the javascript helper code used to create components.
For your use, I've gathered all the components together.
Most typography happens in the standard HTML elements, but here are all of them. Typography automaically adjusts size for desktop or mobile devices.
Use the regular <h1>-<h5> elements or use the h1-h5 class.
<!-- regular h1 element -->
<h1>Heading 1</h1>
<!-- or use the h1 class -->
<p className="h1">Heading 1</p><!-- regular h2 element -->
<h2>Heading 2</h2>
<!-- or use the h2 class -->
<p className="h2">Heading 2</p><!-- regular h3 element -->
<h3>Heading 3</h3>
<!-- or use the h3 class -->
<p className="h3">Heading 3</p><!-- regular h4 element -->
<h4>Heading 4</h4>
<!-- or use the h4 class -->
<p className="h4">Heading 4</p><!-- regular h5 element -->
<h5>Heading 5</h5>
<!-- or use the h5 class -->
<p className="h5">Heading 5</p>| Component | <Subheading> |
| Source | /ui/type/Typography.jsx |
<Subheading>This is a subheading.</Subheading>Is applied to any text not already styled.
<p>queerum ipsum dolor sit amet.</p>Use <Link> element for local links (page to page).
Use <a> element for external links (linking to another website).
<a>this is a link</a>
<Link>this is a link</Link>| Component | <Underline> |
| Source | /ui/type/Underline.jsx |
<Underline shade="light" variant="rainbow">This text is underlined.</Underline>| Component | <SpeechBubble> |
| Source | /ui/type/Typography.jsx |
<SpeechBubble tail="down right">This is a speech bubble.</SpeechBubble>| Component | <Bubble> |
| Source | /ui/type/Typography.jsx |
<Bubble>I'm emphasized!</Bubble>These buttons are ready to go! Just plug in the link.
| Component | <LinkButton> |
| Source | /ui/Buttons.jsx |
<LinkButton color="primary" href="/">I'm a button</LinkButton>| Component | <IconButton /> |
| Source | /ui/Buttons.jsx |
<IconButton icon="discord" href="/" />Boxes for holding elements!
| Component | <Box> |
| Source | /ui/containers/SimpleBoxes.jsx |
<Box color="foam">
<p>queerum ipsum dolor sit amet.</p>
</Box>| Component | <DashedBox> |
| Source | /ui/containers/SimpleBoxes.jsx |
<DashedBox color="foam">
<p>queerum ipsum dolor sit amet.</p>
</DashedBox>| Component | <FancyBox> |
| Source | /ui/containers/FancyBox.jsx |
<FancyBox>
<FancyBoxHeader>
<h2>I am the header</h2>
</FancyBoxHeader>
<FancyBoxContent>
<p>I am the content</p>
</FancyBoxContent>
</FancyBox>Every OUTspoken pride flag, logo, icon, and wordmark we've made!
| Component | <PrideFlag /> |
| Source | /ui/assets/flags/Flags.jsx |
<PrideFlag variant="progress" />| Component | <BrandIcon /> |
| Source | /ui/assets/logos/Logos.jsx |
<BrandIcon shape="square" color="rainbow" />| Component | <Wordmark /> |
| Source | /ui/assets/wordmarks/Wordmark.jsx |
<Wordmark style="lockup" />| Component | <Logo /> |
| Source | /ui/assets/logos/Logos.jsx |
<Logo weight="solid" color="rainbow" />| Component | <SecondaryLogo /> |
| Source | /ui/assets/logos/Logos.jsx |
<SecondaryLogo logo="rainbow-heart" />



















