Persona gives every member on your forum the tools to make their presence their own. Username colours, fonts, effects, avatars, badges, post themes, profile backgrounds -- it's all in one place, with a live preview so they can see exactly what they're getting before they save.
I built this because I wanted something that actually works across every page, not just posts. Persona renders on threads, profiles, popup cards, the forums list, the visitor dropdown -- everywhere a username shows up. And it plays nice with whatever theme you're running.
What's included
Username Styling :
Every feature saves through XenForo's standard entity/repository/controller pattern. Styles generate as CSS files that get injected via the Listener on page load. No template edits to your core templates -- it uses a single template modification on the visitor menu to add the "Persona" link.
Requirements :
Télécharger V1.1.5 :
Télécharger V1.2.0 :
I built this because I wanted something that actually works across every page, not just posts. Persona renders on threads, profiles, popup cards, the forums list, the visitor dropdown -- everywhere a username shows up. And it plays nice with whatever theme you're running.
What's included
Username Styling :
- Solid or gradient colours
- 20 font choices (Google Fonts built in)
- Font size and letter spacing controls
- Text shadow, strikethrough, overline, text stroke
- Border and background colour around the username
- 6 animation effects (pulse, glow, wave, neon flicker, rainbow cycle, gradient shift)
- 16 icons you can place before or after your name (star, crown, fire, gamepad, trophy, etc.)
- Custom font, colour, gradient, and size for your title text
- Renders on posts, profile page, and popup card
- 6 decorative frames (gold, silver, ruby, emerald, sapphire, diamond)
- Adjustable glow colour and strength
- Glow renders as a proper circular effect on every page
- Multi-select badge system -- pick as many as you want
- Badges show inline next to your name on posts
- 5 post themes that change the look of your message area (Midnight, Crimson, Ocean, Forest, Royal)
- 7 mood options (Focused, Hyped, Chill, Competitive, Creative, Mysterious, Fierce)
- Shows as a clean styled pill next to your username
- Each mood has its own colour scheme
- Renders on posts, profile, and popup card
- Profile background colour
- Profile card colour
- 6 profile effects (snow, rain, aurora, fireflies, matrix, stars) -- dual-layer realistic CSS animations
- Save and load style presets
- Quick-apply without redoing everything
- Toggle visibility of your styles
- Disable other members' styles if you prefer a clean look
- Share your style setup with other members
- Full nameplate background, text colour, border, and radius
- Wraps around the username on posts for a standout look
- Everything updates in real time as you make changes
- Shows exactly how your post will look before you save
Every feature saves through XenForo's standard entity/repository/controller pattern. Styles generate as CSS files that get injected via the Listener on page load. No template edits to your core templates -- it uses a single template modification on the visitor menu to add the "Persona" link.
Requirements :
- XenForo 2.2 or 2.3
- PHP 7.4+
- Works with any XenForo-compatible theme
- Persona sits under Appearance in your admin sidebar. The dashboard gives you an overview of active users and a one-click CSS regeneration tool.
Pour consulter le contenu, vous devez : Se connecter ou S'inscrire.
Version 1.0.1
Fixed an issue where usernames and custom titles in the message sidebar could lose their center alignment when Persona features were active. This affected users with nameplates, badges, mood pills, or username effects (wave, bounce, glitch, typewriter) -- the added styling would shift names and titles off-center.
Changes:
Added centering fix for message sidebar user details when per-user Persona CSS is applied
Badge wrapper now uses centered flex layout
Mood pill indicator no longer shifts username alignment
Recommended update for all installations.
Fixed an issue where usernames and custom titles in the message sidebar could lose their center alignment when Persona features were active. This affected users with nameplates, badges, mood pills, or username effects (wave, bounce, glitch, typewriter) -- the added styling would shift names and titles off-center.
Changes:
Added centering fix for message sidebar user details when per-user Persona CSS is applied
Badge wrapper now uses centered flex layout
Mood pill indicator no longer shifts username alignment
Recommended update for all installations.
Version 1.1.3
What's Fixed
Icon and Mood Badge rendering conflict resolved. When a user configured both a username icon (fire, crown, etc.) and a mood badge ("Fierce", "Chill", etc.), only one would display. The root cause was that both features were writing CSS to the same ::after pseudo-element, so whichever rule came last would overwrite the other.
The CSS generator now tracks which pseudo-element the icon occupies and automatically assigns the mood badge to the opposite one. For example, if a user picks a fire icon (which renders via ::after), the mood badge will render via ::before instead. This works for any combination of icon and badge, with no configuration needed.
Context-aware display rules (sidebar, content rows, menus, tooltips, profile headers) have all been updated to correctly handle both pseudo-elements.
What's New
Automatic CSS rebuild on upgrade. When upgrading to 1.1.3, all existing user persona CSS files are automatically regenerated during the install step. This means the fix takes effect immediately for every user who already has a persona configured — no manual rebuild required.
Upgrade Notes
Upload and install as normal through the XenForo admin panel.
The upgrade will regenerate CSS for all users with active personas. On large sites with many configured personas, this may take a few extra seconds during install.
No settings or configuration changes are needed.
What's Fixed
Icon and Mood Badge rendering conflict resolved. When a user configured both a username icon (fire, crown, etc.) and a mood badge ("Fierce", "Chill", etc.), only one would display. The root cause was that both features were writing CSS to the same ::after pseudo-element, so whichever rule came last would overwrite the other.
The CSS generator now tracks which pseudo-element the icon occupies and automatically assigns the mood badge to the opposite one. For example, if a user picks a fire icon (which renders via ::after), the mood badge will render via ::before instead. This works for any combination of icon and badge, with no configuration needed.
Context-aware display rules (sidebar, content rows, menus, tooltips, profile headers) have all been updated to correctly handle both pseudo-elements.
What's New
Automatic CSS rebuild on upgrade. When upgrading to 1.1.3, all existing user persona CSS files are automatically regenerated during the install step. This means the fix takes effect immediately for every user who already has a persona configured — no manual rebuild required.
Upgrade Notes
Upload and install as normal through the XenForo admin panel.
The upgrade will regenerate CSS for all users with active personas. On large sites with many configured personas, this may take a few extra seconds during install.
No settings or configuration changes are needed.
Version 1.1.5
Fixed -- Persona v1.1.5
The bug: regenerateUserCss() in Repository/Persona.php required two arguments ($userId and array $style), but Setup.php was calling it with only $userId during the post-upgrade rebuild step. This caused an ArgumentCountError any time someone upgraded from an older version (like 1.0.1 to 1.1.3 or 1.1.4).
The fix: Made $style an optional parameter (array $style = null). When it's not passed, the method now fetches the user's style data from the UserStyle entity automatically. Both call sites work -- the Setup upgrade path (one arg) and the normal save path (two args).
Fixed -- Persona v1.1.5
The bug: regenerateUserCss() in Repository/Persona.php required two arguments ($userId and array $style), but Setup.php was calling it with only $userId during the post-upgrade rebuild step. This caused an ArgumentCountError any time someone upgraded from an older version (like 1.0.1 to 1.1.3 or 1.1.4).
The fix: Made $style an optional parameter (array $style = null). When it's not passed, the method now fetches the user's style data from the UserStyle entity automatically. Both call sites work -- the Setup upgrade path (one arg) and the normal save path (two args).
Pour consulter le contenu, vous devez : Se connecter ou S'inscrire.
Version 1.2.0 What's Fixed
Username background and border not rendering in sidebar widgets. When a user configured a background colour and/or border on their username, it displayed correctly in tooltips, the live preview, and post areas — but not in the "Members online" sidebar or similar inline-list contexts. The root cause was an override rule that explicitly stripped
Background clipping on gradient + background-colour combinations. When a user had both a text gradient and a background-colour pill, the gradient's
Upgrade Notes
Upload and install as normal. CSS is automatically regenerated for all users. No settings changes needed. Recommended update for all installations.
Username background and border not rendering in sidebar widgets. When a user configured a background colour and/or border on their username, it displayed correctly in tooltips, the live preview, and post areas — but not in the "Members online" sidebar or similar inline-list contexts. The root cause was an override rule that explicitly stripped
background, border, and padding from usernames inside .p-body-sidebar and .contentRow containers. The fix removes those stripping rules and applies display: inline-block; vertical-align: baseline instead, so background pills and borders render cleanly in comma-separated inline lists across all themes.Background clipping on gradient + background-colour combinations. When a user had both a text gradient and a background-colour pill, the gradient's
background-clip: text was applied to the outer wrapper as well as the inner span, clipping the pill to the text shape. The CSS generator now resets the outer element to background-clip: border-box when needed, keeping the pill visible behind the gradient text.Upgrade Notes
Upload and install as normal. CSS is automatically regenerated for all users. No settings changes needed. Recommended update for all installations.
Pour consulter le contenu, vous devez : Se connecter ou S'inscrire.
Pièces jointes

