The Persona 3 portfolio site has no central theme file — visual styles are embedded as inlineDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/blairxu13/persona3-website/llms.txt
Use this file to discover all available pages before exploring further.
<style> tags inside individual JSX components, following a per-component CSS-in-JS pattern. This means color values, font imports, and decoration rules are scattered across files rather than living in a single stylesheet. Understanding where each value lives is essential before you start customizing.
Color Palette
The site uses a dark, high-contrast palette inspired by Persona 3’s deep navy and red UI motifs. The table below lists every key color token, its hex value, and the component(s) where it appears.| Role | Hex | Used In |
|---|---|---|
| Background base | #04060f | P3Menu.jsx, App.css |
| Primary accent / active | #c4001a | P3Menu.jsx, AboutMe.jsx, Socials.jsx, .p3-stripe |
| Highlight / selection | rgba(245,122,139,0.22) | P3Menu.jsx (.p3-stripe2 background) |
| Menu label active (dark fill) | #6b0010 | P3Menu.jsx active label underlay |
| Menu label inactive | #3ce2ff | P3Menu.jsx default label color |
| Menu label hover | #00d9ff | P3Menu.jsx hover state |
| About / Socials bar background | #111 | AboutMe.jsx, Socials.jsx |
| About / Socials active bar | #c4001a | AboutMe.jsx, Socials.jsx selected bar |
| Resume panel background | #10185f | ResumePage.jsx left panel |
| Resume detail panel background | #0f1c69 | ResumePage.jsx gradient right panel |
| Resume accent (cyan) | #85f4ff / #8ef5ff | ResumePage.jsx headings, highlights |
| Page transition — default | #0d1a3a, #1a6aff, #7dd4fc | PageTransition.jsx default variant |
| Page transition — About | #00184c, #53edff, #ffffff | PageTransition.jsx about variant |
| Page transition — Resume | #0f1760, #7ff6ff, #ffffff | PageTransition.jsx resume variant |
| Page transition — Socials | #00184c, #00dff7, #ffffff | PageTransition.jsx socials variant |
Changing the Accent Color
The primary red accent (#c4001a) is the most visually dominant color on the site. It appears in the active menu selection underlay, the animated bar highlights in AboutMe and Socials, and the .p3-stripe decoration. To change it globally:
- Open your editor’s project-wide find and replace (
Ctrl+Shift+H/Cmd+Shift+H). - Search for
#c4001aacross the entiresrc/directory. - Replace every occurrence with your chosen hex value.
#6b0010 (used for the active label fill) should also be updated to a darker shade of your new accent. A good rule of thumb is to use 40–50% of the brightness of your main accent.
Fonts
The site loads four Google Fonts families, each serving a distinct typographic role.| Family | Weight / Style | Role | Loaded In |
|---|---|---|---|
| Anton | Regular italic | Menu labels, resume section titles | index.html, P3Menu.jsx inline style |
| Bebas Neue | Regular | Stats, hints, role labels, nav buttons | AboutMe.jsx inline style, Socials.jsx inline style |
| Barlow Condensed | Various | Body copy in About Me and Socials panels | AboutMe.jsx inline style, Socials.jsx inline style |
| Montserrat | 300 (light) | Reveal panel descriptive text | Relevant panel component inline style |
@import at the top of each component’s embedded <style> tag. For example, P3Menu.jsx contains:
AboutMe.jsx and Socials.jsx each contain:
Changing Fonts
To swap a font, update the Google Fonts@import URL and the font-family declaration in the same <style> block.
- Choose a replacement on fonts.google.com and copy its
@importURL. - Replace the existing
@importin the relevant component’s<style>tag. - Update every
font-familyrule in that same block.
index.html as well if the font was also loaded there via a <link> tag.
Decoration Elements
Several purely decorative elements are defined in the global CSS and rendered as empty<div> nodes inside P3Menu.jsx.
.p3-stripe
A 5 px wide vertical stripe pinned to the right edge of the viewport, filled with the primary red accent (#c4001a). It sits above page content (z-index: 10) and ignores mouse events so it never blocks interaction.
#c4001a with your accent. To remove it, delete the corresponding <div className="p3-stripe" /> in P3Menu.jsx.
.p3-stripe2
A thinner 2 px stripe, offset 9 px from the right edge, with a very faint pink-blush tint (rgba(245,122,139,0.22)). Its low opacity keeps the double-rule subtle against dark backgrounds.
.p3-name-tag
A small rotated watermark in the top-left corner that reads “jade’s / persona”. It uses transform: rotate(18deg) and a low opacity to keep it subtle.
To change the watermark text, find the element in P3Menu.jsx and update its inner text:
.p3-name-tag positioning
The name tag element is absolutely positioned at top: 18px; left: 22px and rotated 18deg clockwise via transform: rotate(18deg) with a transform-origin of left top. These values are defined directly in the inline <style> block inside P3Menu.jsx.
A
.p3-bg-word “SYSTEM” watermark element is sometimes referenced in older forks of this project, but it is not present in the current src/P3Menu.jsx. You do not need to delete anything — the element and its CSS rule simply do not exist in this codebase.