Pyrite
Pyrite for BetterDiscord
208
Live preview
Full Discord interface with this theme applied — powered by ThemePreview.
Screenshot
1
/** 2
* @name Pyrite - BetterDiscord3
* @author LeafyLuigi4
* @version 0.2.85
* @description Pyrite for BetterDiscord.6
* @source https://github.com/LeafyLuigi/discord-themes/tree/master/pyrite7
* @website https://github.com/LeafyLuigi/discord-themes/tree/master/pyrite8
* @invite EeQQTWbTf59
*/10
/* Main Imports */11
/* Import Base */12
@import url(https://leafyluigi.github.io/discord-themes/pyrite/build/base.css);13
/* Import BetterDiscord Only Features */14
@import url(https://leafyluigi.github.io/discord-themes/pyrite/build/better-discord.css);15
/* Using Vencord? Comment out the above import and uncomment the following import. */16
/* @import url(https://leafyluigi.github.io/discord-themes/pyrite/build/vencord.css); */17
/*18
Imports for optional things:19
20
To enable any of these, uncomment of the line containing the `@import` you wish to use.21
22
Whitney Font support. Font file basically stolen from https://github.com/Overimagine1/old-discord-font. */23
@import url(https://leafyluigi.github.io/discord-themes/whitney.css);24
/*25
HorizontalServerList. Forked from Gibbu. Do not use this with the original. */26
/* @import url(https://leafyluigi.github.io/discord-themes/pyrite/build/horizontal-server-list.css); */27
/*28
HorizontalServerList on bottom. Requires the above import. */29
/* @import url(https://leafyluigi.github.io/discord-themes/pyrite/build/horizontal-server-list-bottom.css); */30
/*31
Border Radius / Radical Status. Does not include Gibbu's base for Radical Status. Incompatible with it. */32
/* @import url(https://leafyluigi.github.io/discord-themes/pyrite/build/borders.css) */33
/*34
Restore Windows Titlebar. This will not work for those using Mac OS, Linux or using Web. */35
/* @import url(https://leafyluigi.github.io/discord-themes/pyrite/build/windows-titlebar.css); */36
/*37
Theme Base38
If you wish to read what these variables mean, open this link in your browser:39
https://leafyluigi.github.io/discord-themes/pyrite/var-examples.html */40
:root {41
/* URL must be HTTPS and a direct link to the image. You can have a custom background image for the User Popout and the User Modals. */42
--background-image: url("https://leafyluigi.github.io/images/pexels-josh-sorenson-116359.png");43
--user-modal-image: var(--background-image);44
--user-popout-image: var(--background-image);45
/* Home icon is for the little button in the top left. */46
--home-icon: url("https://leafyluigi.github.io/images/pexels-chris-munnik-2604991.png");47
/* 48
Image attachment can be "fixed", "scroll" or "local".49
scroll/local attaches the background to the modal completely while fixed keeps it in line with the background.50
Default is "fixed" */51
--background-attachment: fixed;52
--user-modal-attachment: var(--background-attachment);53
--user-popout-attachment: var(--background-attachment);54
/*55
Colours.56
Primary is the "main colour".57
Secondary is an accent colour of sorts. It's not used as often as Primary. It should be a shade or two lighter or darker compared to Primary.58
Hover is a secondary accent colour of sorts and is often used when hovering over something. Like Secondary, it should be a shade or two lighter or darker compared to Primary.59
Tooltip is used for tooltips. It can whatever colour you wish.60
61
When using these variables as values for other variables, it's advised to use the HSL variant.62
Such variables will be labeled with a dagger (†).63
Example: --primary-color becomes --hsl-primary-color. */64
--primary-color: #387eff; /* † */65
--secondary-color: #3298e0; /* † */66
--hover-color: #139dff; /* † */67
--tooltip-color: #1967ab; /* † */68
/*69
These colours are used for statues and other coloured things. Ignoring Green they default to Discord's HSL though converted to Hex.70
Green's default here is the old green. The current green is #3ba55d */71
--green-color: #43b581; /* † */72
--yellow-color: #f9a719; /* † */73
--red-color: #ec4144; /* † */74
--link-color: #00aef3; /* † */75
--live-color: #583594; /* † */76
--offline-color: #737e8c; /* † */77
/*78
Channels79
These are used for channel related things. "Channels" may apply to DMs or Server channels. */80
--category-color: var(--header-primary); /* Applies to uncollapsed categories, member list groups and applies to active voice/stage channel. */81
--selected-channel-color: var(--header-primary); /* Applies to selected channel as well as non-locked, non-muted channels on hover. */82
--unread-channel-color: var(--hsl-primary-color); /* Applies to unread channels. Combined with below can give a glow. */83
--read-channel-color: var(--interactive-normal); /* Applies unread, unmuted, unlocked (voice) channels and unmuted collapsed categories. */84
--muted-channel-color: var(--interactive-muted); /* Applies to muted channels and categories. Ignores hover from selected. */85
--show-channel-unread-dot: block; /* Toggle display of the unread channel dot. Valid options: "block" and "none", both without quotations. "block" shows the blob and "none" hides it. */86
--locked-voice-channel-color: var(--hsl-red-color); /* Applies to locked voice channels. Does NOT include full voice channels. */87
/*88
Background default to Primary. Default opacity is 0.3 while on hover it's a static +0.2 compared to not hovered. */89
/* --mention-background: var(--hsl-primary-color); -- See :root:root:root. */90
--mention-opacity: 0.3;91
/*92
For Advanced Users */93
--code-font: Hack, Monaco, Consolas, Courier, monospace;94
--body-font: Whitney, "gg sans", "Noto Sans", "Helvetica Neue", Helvetica, sans-serif;95
--expression-picker-height: 500px; /* Height of the combined Gif/Sticker/Emoji picker. Does not effect adding reactions. Default and minimum height 500px (498px for Discord's base) and a maximum of 70vh. If Discord is smaller than 720px vertically, this won't apply. */96
--background-filter: saturate(calc(1 * var(--saturation-factor, 1)));97
--user-modal-filter: saturate(calc(1 * var(--saturation-factor, 1)));98
--user-popout-filter: saturate(calc(1 * var(--saturation-factor, 1)));99
--home-icon-filter: saturate(calc(1 * var(--saturation-factor, 1)));100
/*101
Toggles. From 0 (disable) to 1 (enable). Anything outside of those values have NOT been tested and likely aren't supported. */102
--hide-speed: 0.5s;103
--hide-member-list: 1;104
--hide-active-now: 1;105
--hide-profile-panel: 1;106
--hide-channel-list: 0;107
--blur-intensity: 1;108
/*109
Windows Only - How many *pixels* wide the min/max/close buttons should be. This will not work when using the "Restore Windows Titlebar" Import. */110
--win-min-max-close-button-width: 28px; /* default: 28px, square: 48px */111
/*112
Using HSL? You can freely change these variables for a different look. */113
--HSL-server-icon-size: 40px; /* Size of the server icons | DEFAULT: 40px */114
--HSL-server-spacing: 10px; /* Spacing between each server icon | DEFAULT: 10px */115
--HSL-server-direction: column; /* Direction of the server list. | OPTIONS: column, column-reverse | DEFAULT: column */116
/* Debug; please do not touch */117
--update-notice-may25: none;118
}119
120
/* Certain things will need to be defined here, mainly due to Discord's own CSS rules. */121
:root:root:root {122
--mention-background: var(--hsl-primary-color);123
}124
125
/* Theme-specific variables */126
/* These ones are for "Light" */127
.theme-light,128
.theme-light :not(div[class*=previewContainer_]) .theme-dark:not(div[class*=layer_], div[class*=outer_]:is([class*=user-profile-popout], [class*=user-profile-modal]), div[class*=sidebar_], nav[class*=guilds_], div[class*=sidebarRegion_]) {129
--card-background: rgba(255, 255, 255, 0.05); /* † */130
--side-shading: rgba(255, 255, 255, 0.4); /* † */131
--middle-shading: rgba(255, 255, 255, 0.3); /* † */132
--header-shading: rgba(255, 255, 255, 0.5); /* † */133
/* The following are applied to buttons to indicate hover and being held down. */134
--hover-filter: rgba(255, 255, 255, 0.2);135
--active-filter: rgba(255, 255, 255, 0.4);136
}137
138
/* These ones are for "Ash" */139
.theme-dark,140
.theme-dark :not(div[class*=previewContainer_]) .theme-light:not(div[class*=layer_], div[class*=outer_]:is([class*=user-profile-popout], [class*=user-profile-modal])) {141
--card-background: rgba(0, 0, 0, 0.4); /* † */142
--side-shading: rgba(0, 0, 0, 0.4); /* † */143
--middle-shading: rgba(0, 0, 0, 0.2); /* † */144
--header-shading: rgba(0, 0, 0, 0.6); /* † */145
/* The following are applied to buttons to indicate hover and being held down. */146
--hover-filter: rgba(0, 0, 0, 0.2);147
--active-filter: rgba(0, 0, 0, 0.4);148
}149
150
/* These ones are for "Dark" */151
.theme-darker,152
.theme-darker :not(div[class*=previewContainer_]) .theme-light:not(div[class*=layer_], div[class*=outer_]:is([class*=user-profile-popout], [class*=user-profile-modal])) {153
--card-background: rgba(0, 0, 0, 0.5); /* † */154
--side-shading: rgba(0, 0, 0, 0.5); /* † */155
--middle-shading: rgba(0, 0, 0, 0.3); /* † */156
--header-shading: rgba(0, 0, 0, 0.7); /* † */157
/* The following are applied to buttons to indicate hover and being held down. */158
--hover-filter: rgba(0, 0, 0, 0.2);159
--active-filter: rgba(0, 0, 0, 0.4);160
}161
162
/* These ones are for "Onyx" */163
.theme-midnight,164
.theme-midnight :not(div[class*=previewContainer_]) .theme-light:not(div[class*=layer_], div[class*=outer_]:is([class*=user-profile-popout], [class*=user-profile-modal])) {165
--card-background: rgba(0, 0, 0, 0.7); /* † */166
--side-shading: rgba(0, 0, 0, 0.7); /* † */167
--middle-shading: rgba(0, 0, 0, 0.6); /* † */168
--header-shading: rgba(0, 0, 0, 0.8); /* † */169
/* The following are applied to buttons to indicate hover and being held down. */170
--hover-filter: rgba(0, 0, 0, 0.2);171
--active-filter: rgba(0, 0, 0, 0.4);172
}173
174
/*175
***********************************************************************************************176
** WARNING: *VERY* ADVANCED USERS ONLY. IF THIS SECTION IS TOO CONFUSING FOR YOU, IGNORE IT. **177
***********************************************************************************************178
179
Chat markup stuff. Change the appearance of certain in-chat text components.180
I strongly recommend reading Mozilla Development Network (MDN) for more information on the below variable kinds.181
182
Font sizes:183
For accessibility reasons and there being a text size slider in Discord's settings, it is strongly recommended184
to use "rem" units or percentages instead of other units ("px", "em", etc), using calc,185
absolute sizes ("xx-small", "medium", "xxx-large", etc) or relative sizes ("smaller" and "larger").186
MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/font-size187
188
Line heights:189
Line heights should always be larger than the font size. Either no specified unit (ie 1.2) should be used or190
"rem" units should be used, preferably the former. Avoid percentages. A similar reason as above applies here.191
The keyword "normal" may be used instead.192
MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/line-height193
194
Font weights:195
Font weights are for the weight (or boldness) of the font. The weights depend on the chosen font and may or196
may not appear. Numeric values between 1 and 1000 (inclusive) are accepted, as are certain keywords.197
Headings usually have a higher weight than regular text.198
"normal" is an alias for 400 while "bold" is an alias for 700. "lighter" and "bolder" may be used as relative keywords.199
MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight200
201
Font styles:202
Font styles control the style of the text. These are either normal, italic or oblique. Italic text is generally cursive203
while Oblique text is usually just normal text at an angle. Oblique text can also have a specified angle.204
Note that not all fonts contain both Italic or Oblique styles with the latter usually being less common.205
MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/font-style206
207
Decorations:208
Text decorations are extra things added to the text as a whole. The theme uses the CSS shorthand "text-decoration" within.209
Only the "line" is used by default, though all will be explained:210
- Line (text-decoration-line) controls where the line is placed. Accepted keyword values include "underline", "overline",211
"line-through" and "none". Multiple non-none values may be used (ie text-decoration-line: underline overline;).212
Underline will show a line underneath the text, overline will show a line above the text, line-through will show a213
line through the text itself and none will not have any lines.214
- Colour (text-decoration-color) controls the colour of all lines.215
- Style (text-decoration-style) specifies the style of lines used. Accepted values include "solid", "double", "dotted",216
"dashed" and "wavy".217
- Thickness (text-decoration-thickness) is for how thick the lines are. 218
MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration219
*/220
:root {221
/* Default text components */222
--chat-font-size: 1rem; /* Default 1rem */223
--chat-line-height: 1.375rem; /* Default 1.375rem */224
--chat-font-color: var(--text-normal); /* Default var(--text-normal) */225
--chat-font-style: normal; /* Default normal */226
--chat-font-weight: 400; /* Default 400 */227
--chat-light-theme-not-zoomed-in-font-weight: 500; /* Default 500 | Light theme font weight without being zoomed in. This falls back to the default value above otherwise. */228
/* Bold text (eg **bold**) */229
--chat-bold-font-weight: 700; /* Default 700 */230
/* Italicised text (eg *italics* or _italics_) */231
--chat-emphasis-style: italic; /* Default italic */232
/* Underlined text (eg __underline__); note that this does not override underlines for links. */233
--chat-underline-decoration: underline; /* Default underline */234
/* Striked through text (eg ~~strikethrough~~) */235
--chat-strikethrough-decoration: line-through; /* Default line-through */236
/* Preformatted text. Appears to be used for outer stuff for big codeblocks. */237
--chat-preformatted-font-size: 0.75rem; /* Default .75rem */238
--chat-preformatted-line-height: 1rem; /* Default 1rem */239
/* Subtext (eg -# subtext); note that the default values at default settings look very similar to the "Only you can see this" text by Clyde or other bots. */240
--chat-subtext-color: var(--text-muted); /* Default var(--text-muted) */241
--chat-subtext-font-size: 0.8125rem; /* Default .8125rem */242
--chat-subtext-line-height: 1.11719rem; /* Default 1.11719rem */243
/* Codeblocks, both inline and large (eg `inline code` and ```large code blocks```) */244
--chat-code-font-size: 0.875rem; /* Default .875rem */245
--chat-code-line-height: 1.125rem; /* Default 1.125rem */246
/* Inline codeblock specifically has a smaller font size. (eg `inline code`) */247
--chat-inline-code-font-size: 85%; /* Default 85% */248
/* All HTML heading tags [h1,h2,h3,h4,h5,h6] (eg # h1 | ## h2 | ### h3 | (h4, h5 and h6 do not appear to be possible to made)) */249
--chat-headings-font-weight: 700; /* Default 700 */250
--chat-headings-font-color: var(--header-primary); /* Default var(--header-primary) */251
--chat-headings-line-height: 1.375em; /* Default 1.375em */252
/* Above but with .inlineFormat_[hash] class with it; I genuinely no idea how to make these appear */253
--chat-inline-headings-font-weight: 600; /* Default 600 */254
--chat-inline-headings-font-color: inherit; /* Default inherit */255
--chat-inline-headings-line-height: 1.25em; /* Default 1.25rem */256
/* First HTML heading (eg # h1) */257
--chat-h1-font-size: 1.5rem; /* Default 1.5rem */258
/* Second HTML heading (eg ## h2) */259
--chat-h2-font-size: 1.25rem; /* Default 1.25rem */260
/* Third HTML heading (eg ### h3). Other headings do not have their own rules. */261
--chat-h3-font-size: 1rem; /* Default 1rem */262
/* "Visual Refresh" experiment [2024-05_desktop_visual_refresh; Treatment 1: Refresh Enabled]. This likely will not effect you. */263
--chat-visual-refresh-line-height: 1.5rem; /* Default 1.5rem */264
}265