├── .github
└── ISSUE_TEMPLATE
│ └── bug_report.md
├── .gitignore
├── Blackout
├── README.md
├── color.ini
├── images
│ ├── album_page.png
│ ├── artist_page.png
│ ├── home.png
│ └── lyrics_page.png
└── user.css
├── Blossom
├── LICENSE
├── README.md
├── color.ini
├── images
│ ├── album.png
│ └── home.png
└── user.css
├── BurntSienna
├── README.md
├── color.ini
├── screenshot.png
└── user.css
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Default
├── README.md
├── color.ini
└── ocean.png
├── Dreary
├── README.md
├── bib.png
├── color.ini
├── deeper.png
├── golden.png
├── graytone-blue.png
├── mono.png
├── psycho.png
└── user.css
├── Dribbblish
├── README.md
├── assets
│ └── glue-resources
│ │ └── fonts
│ │ ├── GoogleSansDisplayMedium.woff2
│ │ ├── GoogleSansDisplayRegular.woff2
│ │ ├── Roboto.woff2
│ │ └── RobotoMedium.woff2
├── base.png
├── beach-sunset.png
├── catppuccin-frappe.png
├── catppuccin-latte.png
├── catppuccin-macchiato.png
├── catppuccin-mocha.png
├── color.ini
├── dark.png
├── gruvbox-material-dark.png
├── gruvbox.png
├── images
│ └── tracklist-row-song-fallback.svg
├── install.ps1
├── lunar.png
├── nord-dark.png
├── nord-light.png
├── purple.png
├── rosepine.png
├── samurai.png
├── theme.js
├── uninstall.ps1
├── user.css
├── white.png
└── windows-shortcut-instruction.png
├── Flow
├── LICENSE
├── README.md
├── color.ini
├── screenshots
│ ├── ocean.png
│ ├── pink.png
│ ├── silver.png
│ └── violet.png
└── user.css
├── LICENSE
├── Matte
├── README.md
├── color.ini
├── screenshots
│ ├── winctrl.png
│ ├── ylx-gray-dark1.png
│ ├── ylx-gray-dark2.png
│ ├── ylx-gray-dark3.png
│ ├── ylx-gray-light.png
│ ├── ylx-gray.png
│ ├── ylx-matte.png
│ ├── ylx-periwinkle-dark.png
│ ├── ylx-periwinkle.png
│ └── ylx-porcelain.png
└── user.css
├── Nightlight
├── README.md
├── color.ini
├── screenshots
│ └── nightlight.png
└── user.css
├── Onepunch
├── .gitignore
├── LICENSE
├── README.md
├── color.ini
├── screenshots
│ ├── dark_album.png
│ ├── dark_home.png
│ ├── dark_playlist.png
│ ├── dark_podcast.png
│ ├── dark_profile.png
│ ├── dark_ylx.png
│ ├── display.gif
│ ├── icons.png
│ ├── legacy_ylx.png
│ ├── light_album.png
│ ├── light_home.png
│ ├── light_playlist.png
│ ├── light_podcast.png
│ ├── light_profile.png
│ └── light_ylx.png
└── user.css
├── README.md
├── SharkBlue
├── README.md
├── color.ini
├── screenshot.png
└── user.css
├── Sleek
├── README.md
├── ayudark.png
├── bladerunner.png
├── catppuccin.png
├── cherry.png
├── color.ini
├── coral.png
├── deep.png
├── deeper.png
├── dracula.png
├── eldritch.png
├── elementary.png
├── futura.png
├── greener.png
├── nord.png
├── psycho.png
├── rosepine.png
├── ultrablack.png
├── user.css
├── vantablack.png
└── wealthy.png
├── StarryNight
├── README.md
├── color.ini
├── images
│ ├── base.png
│ ├── cotton-candy.png
│ ├── forest.png
│ ├── galaxy.png
│ ├── orange.png
│ ├── sky.png
│ └── sunrise.png
├── theme.js
└── user.css
├── THEMES.md
├── Turntable
├── LICENSE
├── README.md
├── color.ini
├── screenshots
│ ├── blur_fad.png
│ ├── blur_fad_vertical.png
│ ├── fad.png
│ ├── fad_vertical.png
│ └── turntable.png
├── theme.js
└── user.css
├── Ziro
├── LICENSE
├── README.md
├── color.ini
├── screenshots
│ ├── rose-pine-dawn.jpg
│ ├── rose-pine-moon.jpg
│ └── rose-pine.jpg
└── user.css
├── _Extra
├── README.md
└── SpotifyNoControl
│ ├── README.md
│ ├── SpotifyNoControl.exe
│ └── windows-shortcut-instruction.png
├── manifest.json
└── text
├── README.md
├── color.ini
├── screenshots
├── CatppuccinLatte.png
├── CatppuccinMacchiato.png
├── CatppuccinMocha.png
├── Dracula.png
├── ForestGreen.png
├── Gruvbox.png
├── Kanagawa.png
├── Nord.png
├── Rigel.png
├── RosePine.png
├── RosePineDawn.png
├── RosePineMoon.png
├── Solarized.png
├── Spicetify.png
├── Spotify.png
├── TokyoNight.png
├── TokyoNightStorm.png
├── winctrl.png
├── withimg.png
└── withoutimg.png
└── user.css
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: "[Theme-name] "
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Prerequisites**
11 | Before opening an issue, make sure
12 | 1. You have the most recent `spicetify` version.
13 | 2. Your Spotify version is compatible with the `spicetify` version you are using.
14 | 3. You have the most recent version of the themes.
15 | 4. You followed the installation instructions for the theme you are using (please go through the entire theme README).
16 |
17 | **Describe the bug**
18 | A clear and concise description of what the bug is.
19 |
20 | **To Reproduce**
21 | Steps to reproduce the behavior:
22 | 1. Go to '...'
23 | 2. Click on '....'
24 | 3. Scroll down to '....'
25 | 4. See error
26 |
27 | **Expected behavior**
28 | A clear and concise description of what you expected to happen.
29 |
30 | **Screenshots**
31 | If applicable, add screenshots to help explain your problem.
32 |
33 | **Logs**
34 | Add logs from console. To do that
35 | 1. Run `spicetify enable-devtools` in terminal
36 | 2. Spotify will be restarted
37 | 3. Hit Ctrl + Shift + I to open DevTools window
38 | 4. Navigate to tab Console
39 | 5. Copy console window content.
40 |
41 | ```console
42 | (Please paste here console logs or attach a screenshot)
43 | ```
44 |
45 | **Specifics (please complete the following information):**
46 | - OS: [e.g. iOS]
47 | - Spotify version [e.g. 1.1.10.546.ge08ef575]
48 | - Spicetify version [e.g. 1.1.0]
49 | - Theme name
50 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | .vscode
--------------------------------------------------------------------------------
/Blackout/README.md:
--------------------------------------------------------------------------------
1 |
2 | # Blackout
3 |
4 | A True Black AMOLED/OLED theme for spicetify.
5 |
6 | ## Looks
7 |
8 | ##### Home
9 | 
10 |
11 | ##### Album Page
12 | 
13 |
14 | ##### Artist Page
15 | 
16 |
17 | ##### Lyrics Page
18 | 
19 |
20 | ## Dependencies
21 |
22 | - Latest version of [Spicetify](https://github.com/spicetify/spicetify-cli).
23 | - Latest version of [Spotify](https://www.spotify.com/download).
24 |
25 | ### Manual Installation
26 |
27 | Use this guide to install if you're having trouble using the shell commands/installation scripts:
28 |
29 | 1. Download this repo as [archive](https://github.com/thefoodiee/oledify/archive/refs/heads/main.zip).
30 | 2. Navigate to the Spicetify's `Themes` directory. Use `spicetify path userdata` command to get the path.
31 | 3. In the directory, create a new folder called `blackout`.
32 | 4. Open the downloaded repo archive, and move all of the files from the main folder to the `blackout` folder you created.
33 | 5. Open a terminal/command prompt window and type the following commands:
34 |
35 | ```shell
36 | spicetify config current_theme blackout color_scheme def
37 | spicetify config inject_css 1 replace_colors 1 overwrite_assets 1 inject_theme_js 1
38 | spicetify apply
39 | ```
40 |
41 | ## Uninstallation
42 |
43 | ### Manual Uninstallation
44 |
45 | ```shell
46 | spicetify config color_scheme ' ' current_theme ' '
47 | spicetify apply
48 | ```
--------------------------------------------------------------------------------
/Blackout/color.ini:
--------------------------------------------------------------------------------
1 | [def]
2 | text = FFFFFF
3 | subtext = F1F1F1
4 | main = 000000
5 | sidebar = 000000
6 | player = 000000
7 | card = 00010A
8 | shadow = 000000
9 | selected-row = F1F1F1
10 | button = 545955
11 | button-active = F1F1F1
12 | button-disabled = 434C5E
13 | tab-active = 000000
14 | notification = 00010A
15 | notification-error = 000000
16 | misc = 00010A
--------------------------------------------------------------------------------
/Blackout/images/album_page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Blackout/images/album_page.png
--------------------------------------------------------------------------------
/Blackout/images/artist_page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Blackout/images/artist_page.png
--------------------------------------------------------------------------------
/Blackout/images/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Blackout/images/home.png
--------------------------------------------------------------------------------
/Blackout/images/lyrics_page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Blackout/images/lyrics_page.png
--------------------------------------------------------------------------------
/Blossom/LICENSE:
--------------------------------------------------------------------------------
1 | Use it as you wish, have fun listening to music.
2 |
3 | Shoutout to Porter Robinson.
4 |
5 | -Robatortas
--------------------------------------------------------------------------------
/Blossom/README.md:
--------------------------------------------------------------------------------
1 | # BLOSSOM
2 |
3 | A little theme for your Spotify client.
4 |
5 | 
6 | 
7 |
8 | Made for a dark theme look thats pleasing to the eye.
9 |
10 | By Robatortas
11 |
--------------------------------------------------------------------------------
/Blossom/color.ini:
--------------------------------------------------------------------------------
1 | [dark]
2 | text = ffffff
3 | subtext = aaaaaa
4 | extratext = aaaaaa
5 | background = 1e2226
6 | player = 282e33
7 | button = 4d5c78
8 | button-active = 6d80a3
9 | button-disabled = 282e33
10 | sidebar = 1e2226
11 | main = 1e2226
12 | card = 282e33
--------------------------------------------------------------------------------
/Blossom/images/album.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Blossom/images/album.png
--------------------------------------------------------------------------------
/Blossom/images/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Blossom/images/home.png
--------------------------------------------------------------------------------
/BurntSienna/README.md:
--------------------------------------------------------------------------------
1 | # BurntSienna
2 |
3 | ## Screenshots
4 | 
5 |
6 | ## More
7 | Montserrat Font is necessary, it is available on Google Fonts:
8 | https://fonts.google.com/specimen/Montserrat
9 | Author: https://github.com/pjaspinski
--------------------------------------------------------------------------------
/BurntSienna/color.ini:
--------------------------------------------------------------------------------
1 | [Base]
2 | button = ef8450
3 | sidebar = 242629
4 | player = 242629
5 | main = 303336
6 | button-active = ef8450
--------------------------------------------------------------------------------
/BurntSienna/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/BurntSienna/screenshot.png
--------------------------------------------------------------------------------
/BurntSienna/user.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
2 | * {
3 | font-family: Montserrat;
4 | }
5 |
6 | /* Page titles */
7 | h1 {
8 | font-weight: 700 !important;
9 | }
10 |
11 | /* Song name in player */
12 | .main-nowPlayingWidget-nowPlaying .main-trackInfo-name {
13 | overflow: unset;
14 | font-size: 20px !important;
15 | }
16 |
17 | /* Artist name in player */
18 | .main-nowPlayingWidget-nowPlaying .main-trackInfo-artists {
19 | overflow: unset;
20 | font-size: 15px;
21 | }
22 |
23 | .main-type-finale {
24 | line-height: 17px;
25 | }
26 |
27 | /* Icons */
28 | .main-trackList-rowPlayPauseIcon {
29 | transform: scale(1.3);
30 | }
31 |
32 | .x-downloadButton-button svg {
33 | height: 32px;
34 | width: 32px;
35 | }
36 |
37 | /* Progress and remaining time */
38 | .main-playbackBarRemainingTime-container,
39 | .playback-bar__progress-time-elapsed,
40 | .playback-bar__progress-time {
41 | font-size: 15px;
42 | margin-left: 5px;
43 | margin-right: 5px;
44 | }
45 |
46 | /* Player play button */
47 | .main-playPauseButton-button {
48 | background-color: unset;
49 | color: var(--spice-subtext);
50 | }
51 |
52 | .main-playPauseButton-button svg {
53 | height: 28px;
54 | width: 28px;
55 | }
56 |
57 | /* Progress bar */
58 | .progress-bar {
59 | --fg-color: var(--spice-button);
60 | }
61 |
62 | .progress-bar__bg,
63 | .progress-bar__fg,
64 | .progress-bar__fg_wrapper {
65 | height: 5px;
66 | }
67 |
68 | .progress-bar-wrapper {
69 | margin-left: 5px;
70 | margin-right: 5px;
71 | }
72 |
73 | /* Extra controls */
74 | .control-button::before {
75 | font-size: 20px;
76 | }
77 |
78 | .ExtraControls svg {
79 | height: 20px;
80 | width: 20px;
81 | }
82 |
83 | /* Removing gradients */
84 | .main-entityHeader-backgroundColor,
85 | .main-actionBarBackground-background {
86 | background-color: unset !important;
87 | background-image: none;
88 | }
89 |
90 | /* Cover shadow */
91 | .main-entityHeader-shadow {
92 | -webkit-box-shadow: 0 4px 20px rgba(var(--spice-rgb-shadow), 0.5);
93 | box-shadow: 0 4px 20px rgba(var(--spice-rgb-shadow), 0.5);
94 | }
95 |
96 | /* Top bar */
97 | .main-topBar-background {
98 | background-color: #3a3d42 !important;
99 | }
100 |
101 | /* Playing icon */
102 | .main-trackList-playingIcon {
103 | filter: saturate(0%);
104 | }
105 |
106 | /* Playlist like button */
107 | .main-actionBar-ActionBarRow .main-addButton-button .Svg-ulyrgf-0 {
108 | height: unset;
109 | width: unset;
110 | }
111 |
112 | /* Order button */
113 | .x-sortBox-sortDropdown {
114 | margin-top: 3px;
115 | }
116 |
117 | /* Sidebar playlists menu */
118 | .main-rootlist-rootlistDividerGradient {
119 | background: unset;
120 | }
121 |
122 | .main-rootlist-rootlistDivider {
123 | background-color: var(--spice-button);
124 | }
125 |
126 | /* Search box */
127 | .x-searchInput-searchInputInput {
128 | font-size: 18px;
129 | }
130 |
131 | /* Aritsts names */
132 | .main-type-mesto {
133 | font-size: 16px;
134 | line-height: 20px;
135 | }
136 |
137 | /* Songs names */
138 | .main-type-ballad {
139 | font-size: 18px;
140 | }
141 |
142 | /* Cards descriptions */
143 | .main-cardSubHeader-root {
144 | overflow: hidden !important;
145 | }
146 |
147 | /* Ad title */
148 | .desktoproutes-homepage-takeover-ad-hptoNativeOriginal-header {
149 | font-weight: 700 !important;
150 | }
151 |
152 | /* Friends names */
153 | .main-buddyFeed-username a {
154 | color: var(--spice-text) !important;
155 | font-size: 17px;
156 | font-weight: 500;
157 | }
158 |
159 | /* Friends songs and artists */
160 | .main-buddyFeed-artistAndTrackName a,
161 | .main-buddyFeed-playbackContextLink span {
162 | font-size: 13px;
163 | }
164 |
165 | /* Cover height */
166 | .main-coverSlotExpanded-container {
167 | height: var(--nav-bar-width) + 8px;
168 | }
169 |
170 | /* Scrollbars */
171 | .os-scrollbar-handle {
172 | background: var(--spice-button) !important;
173 | border-radius: 8px;
174 | }
175 |
176 | /* Making index column wider so that lighter background that
177 | highlights selected song contains multi-digit song numbers */
178 | /* It looks good up to 4 digits, I figured that no one has playlists with more music than that ;) */
179 | .main-trackList-trackList.main-trackList-indexable .main-trackList-trackListRowGrid {
180 | grid-template-columns: [index] 48px [first] 6fr [var1] 4fr [var2] 3fr [last] minmax(120px, 1fr) !important;
181 | }
182 |
183 | /* Text boxes in settings */
184 | .main-dropDown-dropDown {
185 | background-color: var(--spice-button-disabled);
186 | }
187 |
188 | /* Facebook button */
189 | .x-settings-facebookButton {
190 | background-color: unset !important;
191 | }
192 |
193 | /* Playlist play button color */
194 | .encore-dark-theme .encore-bright-accent-set,
195 | .encore-dark-theme .encore-bright-accent-set:hover {
196 | --background-base: var(--spice-button-active);
197 | --background-highlight: var(--spice-player);
198 | --background-press: var(--spice-player);
199 | }
200 |
201 | /* Volume bar margins */
202 | .volume-bar .progress-bar {
203 | margin: 0 0.4rem;
204 | }
205 |
206 | .volume-bar .playback-progressbar {
207 | width: 70%;
208 | }
209 |
210 |
211 | .volume-bar {
212 | flex: 0 150px;
213 | }
214 |
215 | /* Menu hidden under the button with account name - font size and family unification */
216 | .ellipsis-one-line {
217 | font-family: Montserrat;
218 | }
219 |
220 | .ellipsis-one-line.main-type-mesto {
221 | font-size: 14px;
222 | }
223 |
224 | /* Removal of empty space above playlist cover and title on narrow viewports */
225 | .main-entityHeader-container.main-entityHeader-nonWrapped {
226 | min-height: 325px;
227 | height: 15vh;
228 | }
229 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | We as members, contributors, and leaders pledge to make participation in our
6 | community a harassment-free experience for everyone, regardless of age, body
7 | size, visible or invisible disability, ethnicity, sex characteristics, gender
8 | identity and expression, level of experience, education, socio-economic status,
9 | nationality, personal appearance, race, caste, color, religion, or sexual
10 | identity and orientation.
11 |
12 | We pledge to act and interact in ways that contribute to an open, welcoming,
13 | diverse, inclusive, and healthy community.
14 |
15 | ## Our Standards
16 |
17 | Examples of behavior that contributes to a positive environment for our
18 | community include:
19 |
20 | * Demonstrating empathy and kindness toward other people
21 | * Being respectful of differing opinions, viewpoints, and experiences
22 | * Giving and gracefully accepting constructive feedback
23 | * Accepting responsibility and apologizing to those affected by our mistakes,
24 | and learning from the experience
25 | * Focusing on what is best not just for us as individuals, but for the overall
26 | community
27 |
28 | Examples of unacceptable behavior include:
29 |
30 | * The use of sexualized language or imagery, and sexual attention or advances of
31 | any kind
32 | * Trolling, insulting or derogatory comments, and personal or political attacks
33 | * Public or private harassment
34 | * Publishing others' private information, such as a physical or email address,
35 | without their explicit permission
36 | * Other conduct which could reasonably be considered inappropriate in a
37 | professional setting
38 |
39 | ## Enforcement Responsibilities
40 |
41 | Community leaders are responsible for clarifying and enforcing our standards of
42 | acceptable behavior and will take appropriate and fair corrective action in
43 | response to any behavior that they deem inappropriate, threatening, offensive,
44 | or harmful.
45 |
46 | Community leaders have the right and responsibility to remove, edit, or reject
47 | comments, commits, code, wiki edits, issues, and other contributions that are
48 | not aligned to this Code of Conduct, and will communicate reasons for moderation
49 | decisions when appropriate.
50 |
51 | ## Scope
52 |
53 | This Code of Conduct applies within all community spaces, and also applies when
54 | an individual is officially representing the community in public spaces.
55 | Examples of representing our community include using an official e-mail address,
56 | posting via an official social media account, or acting as an appointed
57 | representative at an online or offline event.
58 |
59 | ## Enforcement
60 |
61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
62 | reported to the community leaders responsible for enforcement at
63 | [INSERT CONTACT METHOD].
64 | All complaints will be reviewed and investigated promptly and fairly.
65 |
66 | All community leaders are obligated to respect the privacy and security of the
67 | reporter of any incident.
68 |
69 | ## Enforcement Guidelines
70 |
71 | Community leaders will follow these Community Impact Guidelines in determining
72 | the consequences for any action they deem in violation of this Code of Conduct:
73 |
74 | ### 1. Correction
75 |
76 | **Community Impact**: Use of inappropriate language or other behavior deemed
77 | unprofessional or unwelcome in the community.
78 |
79 | **Consequence**: A private, written warning from community leaders, providing
80 | clarity around the nature of the violation and an explanation of why the
81 | behavior was inappropriate. A public apology may be requested.
82 |
83 | ### 2. Warning
84 |
85 | **Community Impact**: A violation through a single incident or series of
86 | actions.
87 |
88 | **Consequence**: A warning with consequences for continued behavior. No
89 | interaction with the people involved, including unsolicited interaction with
90 | those enforcing the Code of Conduct, for a specified period of time. This
91 | includes avoiding interactions in community spaces as well as external channels
92 | like social media. Violating these terms may lead to a temporary or permanent
93 | ban.
94 |
95 | ### 3. Temporary Ban
96 |
97 | **Community Impact**: A serious violation of community standards, including
98 | sustained inappropriate behavior.
99 |
100 | **Consequence**: A temporary ban from any sort of interaction or public
101 | communication with the community for a specified period of time. No public or
102 | private interaction with the people involved, including unsolicited interaction
103 | with those enforcing the Code of Conduct, is allowed during this period.
104 | Violating these terms may lead to a permanent ban.
105 |
106 | ### 4. Permanent Ban
107 |
108 | **Community Impact**: Demonstrating a pattern of violation of community
109 | standards, including sustained inappropriate behavior, harassment of an
110 | individual, or aggression toward or disparagement of classes of individuals.
111 |
112 | **Consequence**: A permanent ban from any sort of public interaction within the
113 | community.
114 |
115 | ## Attribution
116 |
117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118 | version 2.1, available at
119 | [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
120 |
121 | Community Impact Guidelines were inspired by
122 | [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
123 |
124 | For answers to common questions about this code of conduct, see the FAQ at
125 | [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
126 | [https://www.contributor-covenant.org/translations][translations].
127 |
128 | [homepage]: https://www.contributor-covenant.org
129 | [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
130 | [Mozilla CoC]: https://github.com/mozilla/diversity
131 | [FAQ]: https://www.contributor-covenant.org/faq
132 | [translations]: https://www.contributor-covenant.org/translations
133 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing guidelines
2 |
3 | Here are the guidelines for contributing to this repository.
4 |
5 | ## Before contributing
6 |
7 | For avoiding having too many similar themes with small changes, themes are merged only if they bring **sensitive** changes to default Spotify UI and are different from existing themes.
8 |
9 | A theme name (as well as color scheme name) should consist of one word starting with an uppercase letter and shouldn't contain `spicetify` or any whitespace in it; if a "-" is present in the name it must be followed by an uppercase letter.
10 |
11 | ## How to contribute
12 |
13 | If you want to add your theme:
14 |
15 | * Fork this repository
16 | * Create another folder named after your theme name
17 | * Create `color.ini` and `user.css` files
18 | * Create a `README.md` in it with the following structure
19 |
20 | ```markdown
21 | # THEME_NAME
22 |
23 | ## Screenshots
24 |
25 | [Put at least one image per color scheme here]
26 |
27 | ## More
28 |
29 | [Specify any needed font; (optionally) author name and/or any other info about the theme]
30 | ```
31 | * Add the theme preview to [THEMES.md](./THEMES.md) (themes are in alphabetical order) following this structure if it has only one color scheme
32 |
33 | ```markdown
34 |
35 | ## THEME_NAME
36 |
37 | [A single image of the theme]
38 | ```
39 |
40 | If, instead, more than one color scheme is present
41 |
42 | ```markdown
43 | ## THEME_NAME
44 |
45 | #### COLOR_SCHEME1_NAME
46 |
47 | [A single image of the theme using the color scheme]
48 |
49 | #### COLOR_SCHEME2_NAME
50 |
51 | [A single image of the theme using the color scheme]
52 |
53 | ...
54 | ```
55 | * Commit only once, more details in the **Commit Message**
56 | * Open a Pull Request and mention the most important changes you've made to the UI (ignoring the color scheme)
57 |
58 | **Thanks to all the contributors.**
59 |
60 | ## Commit Message
61 |
62 | **NOTE: commit only once when you add a new theme or scheme (you can also commit again later, if you need to).**
63 |
64 | ### Format
65 |
66 | ():
67 |
68 | [optional]
69 |
70 | **Any line of the commit message cannot be longer than 100 characters!**
71 |
72 | * **type:** feat | fix | docs | chore
73 | * **feat:** A new theme | A new scheme | A new feature
74 | * **fix:** A bug fix
75 | * **docs:** Change the `README.md` of the theme | Change the `THEMES.md`
76 | * **chore:** Add more screenshots | Change the screentshots | Other things
77 | * **scope:** THEMES | ``
78 | * THEMES is a fixed format: `docs(THEMES)`
79 | * In other cases, use the theme name
80 | * **subject:** What changes you have done
81 | * Use the imperative, present tense: "change" not "changed" nor "changes"
82 | * Don't capitalize first letter
83 | * No dot (.) at the end
84 | * **body**: More details of your changes, you can mention the most important changes here
85 |
86 | ### Example (Turntable theme)
87 |
88 | * feat
89 |
90 | ```
91 | feat(Turntable): add Turntable theme
92 | ```
93 |
94 |
95 | ```
96 | feat(Turntable): control the rotation of the turntable
97 |
98 | Rotate the turntable by playing state.
99 | ```
100 | * fix
101 |
102 | ```
103 | fix(Turntable): show the cursor outside the context menu
104 | ```
105 | * docs
106 |
107 | ```
108 | docs(Turntable): update README.md
109 | ```
110 |
111 | ```
112 | docs(THEMES): add preview for the Turntable
113 | ```
114 | * chore
115 |
116 | ```
117 | chore(Turntable): add screenshots of the Turntable
118 | ```
119 | If you want to learn more, view the [Angular - Git Commit Guidelines](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines).
120 |
--------------------------------------------------------------------------------
/Default/README.md:
--------------------------------------------------------------------------------
1 | # Default
2 |
3 | Default look of Spotify with different color schemes.
4 |
5 | ## Screenshot
6 |
7 | 
8 |
9 | ## Info
10 |
11 | ### Ocean
12 |
13 | Part of material ocean themes, [checkout here](https://github.com/material-ocean) for the same theme for different applications. By @Blacksuan19
14 |
--------------------------------------------------------------------------------
/Default/color.ini:
--------------------------------------------------------------------------------
1 | [Ocean]
2 | text = FFFFFF
3 | subtext = F1F1F1
4 | main = 0F111A
5 | sidebar = 0F111A
6 | player = 0F111A
7 | card = 00010A
8 | shadow = 0F111A
9 | selected-row = F1F1F1
10 | button = FF4151
11 | button-active = F1F1F1
12 | button-disabled = 434C5E
13 | tab-active = FF4151
14 | notification = 00010A
15 | notification-error = FF4151
16 | misc = 00010A
17 |
--------------------------------------------------------------------------------
/Default/ocean.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Default/ocean.png
--------------------------------------------------------------------------------
/Dreary/README.md:
--------------------------------------------------------------------------------
1 | # Dreary
2 |
3 | ## Screenshots
4 |
5 | ### BIB
6 | 
7 |
8 | ### Psycho
9 | 
10 |
11 | ### Deeper
12 | 
13 |
14 | ### Mono
15 | 
16 |
17 | ### Golden
18 | 
19 |
20 | ### Graytone-Blue
21 | 
22 |
23 |
24 | ## Important
25 | Certain aspects of the theme, such as the borders around playlist names, require Sidebar Config to be enabled. It is not required but recommended.
26 |
27 | You can enable it by running `spicetify config sidebar_config 1`.
28 |
29 | ## More
30 |
31 | A chill theme that keeps things bordered in and organized
32 |
33 | BIB color scheme based on original [BIB-Green](https://github.com/spicetify/spicetify-themes/tree/master/BIB-Green)
34 |
35 | Theme based on Sleek theme: https://github.com/spicetify/spicetify-themes/tree/v2/Sleek
36 |
37 |
--------------------------------------------------------------------------------
/Dreary/bib.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dreary/bib.png
--------------------------------------------------------------------------------
/Dreary/color.ini:
--------------------------------------------------------------------------------
1 | [Psycho]
2 | ; Red on dark grey background
3 | text = e00000
4 | subtext = ffffff
5 | button-text = ffffff
6 | main = 101010
7 | sidebar = 171717
8 | player = 171717
9 | subbutton-text = 101010
10 | card = 171717
11 | shadow = 6d1414
12 | selected-row = 330d0d
13 | sub-button = a20606
14 | button = e00000
15 | button-active = e00000
16 | button-disabled = 404040
17 | tab-active = 171717
18 | notification = 5e0000
19 | notification-error = 5e0000
20 | playback-bar = ff4700
21 | misc = adadad
22 |
23 | [Deeper]
24 | ; Light blue on Dark Background
25 | text = 4f9a87
26 | subtext = 406560
27 | button-text = 4f9a87
28 | main = 040614
29 | sidebar = 0F111A
30 | player = 0F111A
31 | subbutton-text = 040614
32 | card = 0f1118
33 | shadow = 406560
34 | selected-row = 040614
35 | sub-button = 4f9a87
36 | button = 0d3a2e
37 | button-active = 106165
38 | button-disabled = 0C1C19
39 | tab-active = 0a1527
40 | notification = 051024
41 | notification-error = 051024
42 | playback-bar = 4f9a87
43 | misc = 406560
44 |
45 | [BIB]
46 | ; Green on dark grey background
47 | text = 8bc34a
48 | subtext = b4b4b4
49 | button-text = 202020
50 | main = 202020
51 | sidebar = 202020
52 | player = 242424
53 | subbutton-text = 202020
54 | card = 242424
55 | shadow = 000000
56 | selected-row = 2a3c17
57 | sub-button = 6a913d
58 | button = 537b25
59 | button-active = 98da4b
60 | button-disabled = 353535
61 | tab-active = 303030
62 | notification = 242424
63 | notification-error = 242424
64 | playback-bar = 8bc34a
65 | misc = 8bc34a
66 |
67 | [Mono]
68 | ;Grays, Blacks, Whites, You get the gist.
69 | text = FFFFFF
70 | subtext = d3d3d3
71 | button-text = FFFFFF
72 | main = 000000
73 | sidebar = 5d5e60
74 | subbutton-text = d3d3d3
75 | player = 181818
76 | card = 5d5e60
77 | selected-row = 2D2A32
78 | shadow = FFFFFF
79 | sub-button = d3d3d3
80 | button = d3d3d3
81 | button-active = d3d3d3
82 | button-disabled = 181818
83 | tab-active = d3d3d3
84 | notification = 181818
85 | notification-error = b5cbb7
86 | playback-bar = d3d3d3
87 | misc = d3d3d3
88 |
89 | [Golden]
90 | ;Gold
91 | text = FFE002
92 | subtext = B28228
93 | button-text = FFE002
94 | main = 1C1C1C
95 | sidebar = 3B3B3B
96 | subbutton-text = 3B3B3B
97 | player = 1C1C1C
98 | card = 3B3B3B
99 | selected-row = 1c1c1c
100 | shadow = FFE002
101 | sub-button = B28228
102 | button = B28228
103 | button-active = B28228
104 | button-disabled = FFB606
105 | tab-active = B28228
106 | notification = FFB606
107 | notification-error = b5cbb7
108 | playback-bar = B28228
109 | misc = B28228
110 |
111 |
112 | [Graytone-Blue]
113 | ; Gray colors with blue highlights
114 | text = 4f9a87
115 | subtext = 406560
116 | button-text = 4f9a87
117 | main = 111115
118 | sidebar = 1e2027
119 | subbutton-text = 040614
120 | player = 1a1b1d
121 | card = 0f1118
122 | selected-row = 040614
123 | shadow = 406560
124 | sub-button = 4f9a87
125 | button = 0d3a2e
126 | button-active = 106165
127 | button-disabled = 0C1C19
128 | tab-active = 0a1527
129 | notification = 051024
130 | notification-error = 051024
131 | playback-bar = 4f9a87
132 | misc = 406560
133 |
134 | ; Description
135 |
136 | ; text = main text, playlist names in main field, name of playlist selected in sidebar, headings
137 | ; subtext = text in main buttons in sidebar, playlist names in sidebar, artist names, and mini infos
138 | ; button-text = text in main buttons in sidebar when active
139 | ; main = main field or main bg
140 | ; sidebar = sidebar bg
141 | ; subbutton-text = text of buttons that use the text color or subtext color as a background
142 | ; player = player bg
143 | ; card = card bg
144 | ; shadow = bg of buttons like account, pop-up lyrics, full app display in main field
145 | ; selected-row = color of the song selected
146 | ; sub-button = caption and details of playlist, download and options button
147 | ; button = playlist buttons bg in sidebar, drop-down menus, now playing song, like button
148 | ; button-active = hover on song selected
149 | ; button-disabled = seekbar bg, volume bar bg, scrollbar
150 | ; tab-active = button bg in main field (playlists, podcasts, artists, albums)
151 | ; notification = notification ('Added to liked songs' etc.)
152 | ; notification-error = error
153 | ; playback-bar = seekbar fg, main play/pause button bg
154 | ; misc = miscellaneous
155 |
--------------------------------------------------------------------------------
/Dreary/deeper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dreary/deeper.png
--------------------------------------------------------------------------------
/Dreary/golden.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dreary/golden.png
--------------------------------------------------------------------------------
/Dreary/graytone-blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dreary/graytone-blue.png
--------------------------------------------------------------------------------
/Dreary/mono.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dreary/mono.png
--------------------------------------------------------------------------------
/Dreary/psycho.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dreary/psycho.png
--------------------------------------------------------------------------------
/Dribbblish/README.md:
--------------------------------------------------------------------------------
1 | # Dribbblish
2 |
3 | ### Base
4 | 
5 | ### White
6 | 
7 | ### Dark
8 | 
9 | ### Nord-Light
10 | 
11 | ### Nord-Dark
12 | 
13 | ### Beach-Sunset
14 | 
15 | ### Purple
16 | 
17 | ### Samurai
18 | 
19 | ### Gruvbox
20 | 
21 | ### Gruvbox Material Dark
22 | 
23 | ### Rosé Pine
24 | 
25 | ### Lunar
26 | 
27 | ### Catppuccin Latte
28 | 
29 | ### Catppuccin Frappe
30 | 
31 | ### Catppuccin Macchiato
32 | 
33 | ### Catppuccin Mocha
34 | 
35 |
36 | ## Features
37 | ### Resizable sidebar
38 |
39 |
40 |
41 | ### Customizable sidebar
42 | Rearrange icons positions, stick icons to header or hide unnecessary to save space.
43 | Turn on "Sidebar config" mode in Profile menu and hover on icon to show control buttons.
44 | After you finish customizing, turn off Config mode in Profile menu to save.
45 |
46 |
47 |
48 | ### Playlist Folder image
49 | Right click at folder and choose images for your playlist folder. Every image formats supported by Chrome can be used, but do keep image size small and in compressed format.
50 |
51 |
52 |
53 | ### Left/Right expanded cover
54 | In profile menu, toggle option "Right expanded cover" to change expaned current track cover image to left or right side, whereever you prefer.
55 |
56 | ## Auto-install
57 | Make sure you are using spicetify >= v2.5.0 and Spotify >= v1.1.56.
58 | ### Windows
59 | ```powershell
60 | Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/spicetify/spicetify-themes/master/Dribbblish/install.ps1" | Invoke-Expression
61 | ```
62 |
63 | ## Manual Install
64 | Run these commands:
65 |
66 | ### Linux and MacOS:
67 | In **Bash**:
68 | ```bash
69 | cd "$(dirname "$(spicetify -c)")/Themes/Dribbblish"
70 | spicetify config current_theme Dribbblish color_scheme base
71 | spicetify config inject_css 1 replace_colors 1 overwrite_assets 1 inject_theme_js 1
72 | spicetify apply
73 | ```
74 |
75 | ### Windows
76 | In **Powershell**:
77 | ```powershell
78 | cd "$(spicetify -c | Split-Path)\Themes\Dribbblish"
79 | spicetify config current_theme Dribbblish color_scheme base
80 | spicetify config inject_css 1 replace_colors 1 overwrite_assets 1 inject_theme_js 1
81 | spicetify apply
82 | ```
83 |
84 | From Spotify > v1.1.62, in sidebar, they use an adaptive render mechanic to actively show and hide items on scroll. It helps reducing number of items to render, hence there is significant performance boost if you have a large playlists collection. But the drawbacks is that item height is hard-coded, it messes up user interaction when we explicity change, in CSS, playlist item height bigger than original value. So you need to add these 2 lines in Patch section in config file:
85 | ```ini
86 | [Patch]
87 | xpui.js_find_8008 = ,(\w+=)32,
88 | xpui.js_repl_8008 = ,${1}56,
89 | ```
90 |
91 | ## Change Color Schemes
92 | There are 9 color schemes you can choose: `base`, `white`, `dark`, `dracula`, `nord-dark`, `nord-light`, `beach-sunset`, `samurai`, `purple`, `gruvbox`, `gruvbox-material-dark`, `catppuccin-latte`, `catppuccin-frappe`, `catppuccin-macchiato`, and `catppuccin-mocha`. Change scheme with commands:
93 | ```
94 | spicetify config color_scheme
95 | spicetify apply
96 | ```
97 |
98 | ## Auto-uninstall
99 | ### Windows
100 | ```powershell
101 | Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/spicetify/spicetify-themes/v2/Dribbblish/uninstall.ps1" | Invoke-Expression
102 | ```
103 |
104 | ## Manual uninstall
105 | Remove the dribbblish theme with the following commands
106 |
107 | ```
108 | spicetify config current_theme " " color_scheme " "
109 | spicetify apply
110 | ```
111 |
--------------------------------------------------------------------------------
/Dribbblish/assets/glue-resources/fonts/GoogleSansDisplayMedium.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dribbblish/assets/glue-resources/fonts/GoogleSansDisplayMedium.woff2
--------------------------------------------------------------------------------
/Dribbblish/assets/glue-resources/fonts/GoogleSansDisplayRegular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dribbblish/assets/glue-resources/fonts/GoogleSansDisplayRegular.woff2
--------------------------------------------------------------------------------
/Dribbblish/assets/glue-resources/fonts/Roboto.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dribbblish/assets/glue-resources/fonts/Roboto.woff2
--------------------------------------------------------------------------------
/Dribbblish/assets/glue-resources/fonts/RobotoMedium.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dribbblish/assets/glue-resources/fonts/RobotoMedium.woff2
--------------------------------------------------------------------------------
/Dribbblish/base.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dribbblish/base.png
--------------------------------------------------------------------------------
/Dribbblish/beach-sunset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dribbblish/beach-sunset.png
--------------------------------------------------------------------------------
/Dribbblish/catppuccin-frappe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dribbblish/catppuccin-frappe.png
--------------------------------------------------------------------------------
/Dribbblish/catppuccin-latte.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dribbblish/catppuccin-latte.png
--------------------------------------------------------------------------------
/Dribbblish/catppuccin-macchiato.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dribbblish/catppuccin-macchiato.png
--------------------------------------------------------------------------------
/Dribbblish/catppuccin-mocha.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dribbblish/catppuccin-mocha.png
--------------------------------------------------------------------------------
/Dribbblish/color.ini:
--------------------------------------------------------------------------------
1 | [base]
2 | text = FFFFFF
3 | subtext = F0F0F0
4 | sidebar-text = FFFFFF
5 | main = 000000
6 | sidebar = 24b558
7 | player = 000000
8 | card = 000000
9 | shadow = 202020
10 | selected-row = 797979
11 | button = 24b558
12 | button-active = 24b558
13 | button-disabled = 535353
14 | tab-active = 166632
15 | notification = 1db954
16 | notification-error = e22134
17 | misc = BFBFBF
18 |
19 |
20 | [white]
21 | text = 363636
22 | subtext = 3D3D3D
23 | sidebar-text = FFF9F4
24 | main = FFF9F4
25 | sidebar = FFA789
26 | player = FFF9F4
27 | card = FFF9F4
28 | shadow = d3d3d3
29 | selected-row = 6D6D6D
30 | button = ff8367
31 | button-active = ff8367
32 | button-disabled = 535353
33 | tab-active = ffdace
34 | notification = FFA789
35 | notification-error = e22134
36 | misc = BFBFBF
37 |
38 | [dark]
39 | text = F0F0F0
40 | subtext = F0F0F0
41 | sidebar-text = 0a0e14
42 | main = 0a0e14
43 | sidebar = C2D935
44 | player = 0a0e14
45 | card = 0a0e14
46 | shadow = 202020
47 | selected-row = DEDEDE
48 | button = C2D935
49 | button-active = C2D935
50 | button-disabled = 535353
51 | tab-active = 727d2b
52 | notification = C2D935
53 | notification-error = e22134
54 | misc = BFBFBF
55 |
56 | [dracula]
57 | text = f8f8f2
58 | subtext = f8f8f2
59 | sidebar-text = F0F0F0
60 | main = 44475a
61 | sidebar = 6272a4
62 | player = 44475a
63 | card = 6272a4
64 | shadow = 000000
65 | selected-row = bd93f9
66 | button = ffb86c
67 | button-active = 8be9fd
68 | button-disabled = 535353
69 | tab-active = 6272a4
70 | notification = bd93f9
71 | notification-error = e22134
72 | misc = BFBFBF
73 |
74 | [nord-light]
75 | text = 2e3440
76 | subtext = 3b4252
77 | sidebar-text = ECEFF4
78 | main = ECEFF4
79 | sidebar = 5E81AC
80 | player = ECEFF4
81 | card = ebcb8b
82 | shadow = eceff4
83 | selected-row = 4c566a
84 | button = 81a1c1
85 | button-active = 81a1c1
86 | button-disabled = c0c0c0
87 | tab-active = ebcb8b
88 | notification = a3be8c
89 | notification-error = bf616a
90 | misc = BFBFBF
91 |
92 | [nord-dark]
93 | text = ECEFF4
94 | subtext = E5E9F0
95 | sidebar-text = 434c5e
96 | main = 2e3440
97 | sidebar = 88C0D0
98 | player = 2e3440
99 | card = 2e3440
100 | shadow = 2E3440
101 | selected-row = D8DEE9
102 | button = 81A1C1
103 | button-active = 81A1C1
104 | button-disabled = 434C5E
105 | tab-active = 434C5E
106 | notification = A3BE8C
107 | notification-error = BF616A
108 | misc = BFBFBF
109 |
110 | [purple]
111 | text = f1eaff
112 | subtext = f1eaff
113 | sidebar-text = e0d0ff
114 | main = 0A0E14
115 | sidebar = 6F3C89
116 | player = 0A0E14
117 | card = 0A0E14
118 | shadow = 3a2645
119 | selected-row = 645275
120 | button = c76af6
121 | button-active = 6F3C89
122 | button-disabled = 535353
123 | tab-active = 58306D
124 | notification = ff9e00
125 | notification-error = f61379
126 | misc = DEDEDE
127 |
128 | [samurai]
129 | text = ebdbb2
130 | subtext = ebdbb2
131 | sidebar-text = 461217
132 | main = 461217
133 | sidebar = ebdbb2
134 | player = 461217
135 | card = 461217
136 | shadow = 000000
137 | selected-row = 909090
138 | button = e7a52d
139 | button-active = e7a52d
140 | button-disabled = 535353
141 | tab-active = e7a52d
142 | notification = e7a52d
143 | notification-error = e22134
144 | misc = BFBFBF
145 |
146 | [beach-sunset]
147 | text = FFFFFF
148 | subtext = F0F0F0
149 | sidebar-text = F0F0F0
150 | main = 262626
151 | sidebar = bd3e3e
152 | player = 262626
153 | card = 262626
154 | shadow = 000000
155 | selected-row = d1d6e2
156 | button = f1a84f
157 | button-active = c98430
158 | button-disabled = 535353
159 | tab-active = f1a84f
160 | notification = c98430
161 | notification-error = e22134
162 | misc = BFBFBF
163 |
164 | [gruvbox]
165 | text = fbf1c7
166 | subtext = d5c4a1
167 | sidebar-text = ebe1b7
168 | main = 292828
169 | sidebar = 689d6a
170 | player = 292828
171 | card = 3c3836
172 | shadow = 202020
173 | selected-row = d5c4a1
174 | button = fb4934
175 | button-active = cc241d
176 | button-disabled = bdae93
177 | tab-active = fb4934
178 | notification = 8ec07c
179 | notification-error = d79921
180 | misc = BFBFBF
181 |
182 | [gruvbox-material-dark]
183 | text = fbf1c7
184 | subtext = d5c4a1
185 | sidebar-text = 716e5f
186 | main = 292828
187 | sidebar = 1d2021
188 | player = 292828
189 | card = 3c3836
190 | shadow = 202020
191 | selected-row = d5c4a1
192 | button = a9b665
193 | button-active = a9b665
194 | button-disabled = bdae93
195 | tab-active = a9b665
196 | notification = 8ec07c
197 | notification-error = d79921
198 | misc = BFBFBF
199 |
200 | [rosepine]
201 | text = ebbcba
202 | subtext = F0F0F0
203 | sidebar-text = e0def4
204 | main = 191724
205 | sidebar = 2a2837
206 | player = 191724
207 | card = 191724
208 | shadow = 1f1d2e
209 | selected-row = 797979
210 | button = 31748f
211 | button-active = 31748f
212 | button-disabled = 555169
213 | tab-active = 31748f
214 | notification = 1db954
215 | notification-error = eb6f92
216 | misc = 6e6a86
217 |
218 | [lunar]
219 | text = f3f3f3
220 | subtext = cecece
221 | sidebar-text = f3f3f3
222 | main = 161616
223 | sidebar = 202020
224 | player = 161616
225 | card = 161616
226 | shadow = 252525
227 | selected-row = 202020
228 | button = 3281ea
229 | button-active = 0284e8
230 | button-disabled = 303030
231 | tab-active = ebbcba
232 | notification = 3281ea
233 | notification-error = b10c0c
234 | misc = 252525
235 |
236 | ; Comments below correspond to the labeling of the colors on the Catppuccin GitHub page.
237 |
238 | [catppuccin-latte]
239 | text = 4c4f69 ; Text
240 | subtext = 5c5f77 ; Subtext1
241 | sidebar-text = 4c4f69 ; Text
242 | main = eff1f5 ; Base
243 | sidebar = e6e9ef ; Mantle
244 | player = eff1f5 ; Base
245 | card = eff1f5 ; Base
246 | shadow = e6e9ef ; Mantle
247 | selected-row = 7c7f93 ; Overlay2
248 | button = 8c8fa1 ; Overlay1
249 | button-active = 7c7f93 ; Overlay2
250 | button-disabled = 9ca0b0 ; Overlay0
251 | tab-active = ccd0da ; Surface0
252 | notification = ccd0da ; Surface0
253 | notification-error = d20f39 ; Red
254 | misc = bcc0cc ; Surface1
255 |
256 | [catppuccin-frappe]
257 | text = c6d0f5 ; Text
258 | subtext = b5bfe2 ; Subtext1
259 | sidebar-text = c6d0f5 ; Text
260 | main = 303446 ; Base
261 | sidebar = 292c3c ; Mantle
262 | player = 303446 ; Base
263 | card = 303446 ; Base
264 | shadow = 292c3c ; Mantle
265 | selected-row = 949cbb ; Overlay2
266 | button = 838ba7 ; Overlay1
267 | button-active = 949cbb ; Overlay2
268 | button-disabled = 737994 ; Overlay0
269 | tab-active = 414559 ; Surface0
270 | notification = 414559 ; Surface0
271 | notification-error = e78284 ; Red
272 | misc = 51576d ; Surface1
273 |
274 | [catppuccin-macchiato]
275 | text = cad3f5 ; Text
276 | subtext = b8c0e0 ; Subtext1
277 | sidebar-text = cad3f5 ; Text
278 | main = 24273a ; Base
279 | sidebar = 1e2030 ; Mantle
280 | player = 24273a ; Base
281 | card = 24273a ; Base
282 | shadow = 1e2030 ; Mantle
283 | selected-row = 939ab7 ; Overlay2
284 | button = 8087a2 ; Overlay1
285 | button-active = 939ab7 ; Overlay2
286 | button-disabled = 6e738d ; Overlay0
287 | tab-active = 363a4f ; Surface0
288 | notification = 363a4f ; Surface0
289 | notification-error = ed8796 ; Red
290 | misc = 494d64 ; Surface1
291 |
292 | [catppuccin-mocha]
293 | text = cdd6f4 ; Text
294 | subtext = bac2de ; Subtext1
295 | sidebar-text = cdd6f4 ; Text
296 | main = 1e1e2e ; Base
297 | sidebar = 181825 ; Mantle
298 | player = 1e1e2e ; Base
299 | card = 1e1e2e ; Base
300 | shadow = 181825 ; Mantle
301 | selected-row = 9399b2 ; Overlay2
302 | button = 7f849c ; Overlay1
303 | button-active = 9399b2 ; Overlay2
304 | button-disabled = 6c7086 ; Overlay0
305 | tab-active = 313244 ; Surface0
306 | notification = 313244 ; Surface0
307 | notification-error = f38ba8 ; Red
308 | misc = 45475a ; Surface1
309 |
--------------------------------------------------------------------------------
/Dribbblish/dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dribbblish/dark.png
--------------------------------------------------------------------------------
/Dribbblish/gruvbox-material-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dribbblish/gruvbox-material-dark.png
--------------------------------------------------------------------------------
/Dribbblish/gruvbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dribbblish/gruvbox.png
--------------------------------------------------------------------------------
/Dribbblish/images/tracklist-row-song-fallback.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Dribbblish/install.ps1:
--------------------------------------------------------------------------------
1 | $checkSpice = Get-Command spicetify -ErrorAction Silent
2 | if ($null -eq $checkSpice) {
3 | Write-Host -ForegroundColor Red "Spicetify not found"
4 | Write-Host "Follow instruction on:", "https://spicetify.app/docs/getting-started/simple-installation#windows"
5 | return
6 | }
7 |
8 | Write-Host "Downloading themes package:" -ForegroundColor Green
9 | $zipFile = "$env:TEMP\spicetify-themes.zip"
10 | Invoke-WebRequest "https://github.com/spicetify/spicetify-themes/archive/refs/heads/master.zip" -OutFile $zipFile
11 |
12 | Write-Host "Extracting themes package:" -ForegroundColor Green
13 | $extractPath = "$env:TEMP\spicetify-themes-master"
14 | if (Test-Path $extractPath) {
15 | Remove-Item $extractPath -Recurse -Force
16 | }
17 | Expand-Archive $zipFile -DestinationPath $env:TEMP
18 |
19 | # Copy to personal Themes folder
20 | $spicePath = spicetify -c | Split-Path
21 | $dribPath = "$extractPath\Dribbblish"
22 |
23 | $destPath = "$spicePath\Themes\Dribbblish"
24 | if (Test-Path $destPath) {
25 | Remove-Item $destPath -Recurse -Force
26 | }
27 | Copy-Item $dribPath $destPath -Recurse
28 |
29 | Write-Host "Configuring:" -ForegroundColor Green
30 | spicetify
31 | spicetify config inject_css 1 replace_colors 1 overwrite_assets 1 inject_theme_js 1 current_theme Dribbblish
32 |
33 | # Add patch
34 | $configFile = Get-Content "$spicePath\config-xpui.ini"
35 | if (-not ($configFile -match "xpui.js_find_8008")) {
36 | $rep = @"
37 | [Patch]
38 | xpui.js_find_8008=,(\w+=)32,
39 | xpui.js_repl_8008=,`${1}56,
40 | "@
41 | # In case missing Patch section
42 | if (-not ($configFile -match "\[Patch\]")) {
43 | $configFile += "`n[Patch]`n"
44 | }
45 | $configFile = $configFile -replace "\[Patch\]",$rep
46 | Set-Content "$spicePath\config-xpui.ini" $configFile
47 | }
48 |
49 | $backupVer = $configFile -match "^version"
50 | $version = ConvertFrom-StringData $backupVer[0]
51 | if ($version.version.Length -gt 0) {
52 | spicetify apply
53 | } else {
54 | spicetify backup apply
55 | }
56 |
--------------------------------------------------------------------------------
/Dribbblish/lunar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dribbblish/lunar.png
--------------------------------------------------------------------------------
/Dribbblish/nord-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dribbblish/nord-dark.png
--------------------------------------------------------------------------------
/Dribbblish/nord-light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dribbblish/nord-light.png
--------------------------------------------------------------------------------
/Dribbblish/purple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dribbblish/purple.png
--------------------------------------------------------------------------------
/Dribbblish/rosepine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dribbblish/rosepine.png
--------------------------------------------------------------------------------
/Dribbblish/samurai.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dribbblish/samurai.png
--------------------------------------------------------------------------------
/Dribbblish/theme.js:
--------------------------------------------------------------------------------
1 | function waitForElement(els, func, timeout = 100) {
2 | const queries = els.map(el => document.querySelector(el));
3 | if (queries.every(a => a)) {
4 | func(queries);
5 | } else if (timeout > 0) {
6 | setTimeout(waitForElement, 300, els, func, --timeout);
7 | }
8 | }
9 |
10 | let DribbblishShared = {};
11 |
12 | // back shadow
13 | waitForElement([".Root__top-container"], ([topContainer]) => {
14 | const shadow = document.createElement("div");
15 | shadow.id = "dribbblish-back-shadow";
16 | topContainer.prepend(shadow);
17 | });
18 |
19 | // Spicetify.Platform.ConnectAPI.state.connectionStatus;
20 |
21 | // add fade effect on playlist/folder list
22 | waitForElement([".main-navBar-mainNav .os-viewport.os-viewport-native-scrollbars-invisible"], ([scrollNode]) => {
23 | scrollNode.setAttribute("fade", "bottom");
24 | scrollNode.addEventListener("scroll", () => {
25 | if (scrollNode.scrollTop == 0) {
26 | scrollNode.setAttribute("fade", "bottom");
27 | } else if (scrollNode.scrollHeight - scrollNode.clientHeight - scrollNode.scrollTop == 0) {
28 | scrollNode.setAttribute("fade", "top");
29 | } else {
30 | scrollNode.setAttribute("fade", "full");
31 | }
32 | });
33 | });
34 |
35 | // adjust topbar margin with left sidebar width
36 | waitForElement([".Root__nav-bar"], ([resizer]) => {
37 | const observer = new MutationObserver(updateVariable);
38 | observer.observe(resizer, { attributes: true, attributeFilter: ["style"] });
39 | function updateVariable() {
40 | let style = resizer.style;
41 | let value = style.getPropertyValue("--left-sidebar-width");
42 | waitForElement([".Root__globalNav"], ([globalNav]) => {
43 | let globalNavStyle = globalNav.style;
44 | globalNavStyle.setProperty("--left-sidebar-width", value);
45 | });
46 | }
47 | updateVariable();
48 | });
49 |
50 | let version;
51 | let ylx;
52 |
53 | (function Dribbblish() {
54 | // dynamic playback time tooltip
55 | const progBar = document.querySelector(".playback-bar");
56 | const root = document.querySelector(".Root");
57 |
58 | if (!Spicetify.Player.origin || !progBar || !root) {
59 | setTimeout(Dribbblish, 300);
60 | return;
61 | }
62 |
63 | version = Spicetify.Platform.PlatformData.event_sender_context_information.client_version_int;
64 |
65 | if (version < 121200000) {
66 | document.documentElement.classList.add("legacy");
67 | legacy();
68 | } else if (version >= 121200000 && version < 121400000) {
69 | document.documentElement.classList.add("legacy-gridChange");
70 | legacy();
71 | } else if (version >= 121400000) {
72 | document.documentElement.classList.add("ylx");
73 | ylx = true;
74 | }
75 |
76 | const tooltip = document.createElement("div");
77 | tooltip.className = "prog-tooltip";
78 | progBar.append(tooltip);
79 |
80 | function updateProgTime({ data: e }) {
81 | const maxWidth = progBar.offsetWidth;
82 | const curWidth = Spicetify.Player.getProgressPercent() * maxWidth;
83 | const ttWidth = tooltip.offsetWidth / 2;
84 | if (curWidth < ttWidth + 12) {
85 | tooltip.style.left = "12px";
86 | } else if (curWidth > maxWidth - ttWidth - 12) {
87 | tooltip.style.left = String(maxWidth - ttWidth * 2 - 12) + "px";
88 | } else {
89 | tooltip.style.left = String(curWidth - ttWidth) + "px";
90 | }
91 | tooltip.innerText = Spicetify.Player.formatTime(e) + " / " + Spicetify.Player.formatTime(Spicetify.Player.getDuration());
92 | }
93 | Spicetify.Player.addEventListener("onprogress", updateProgTime);
94 | updateProgTime({ data: Spicetify.Player.getProgress() });
95 |
96 | // filepicker for custom folder images
97 | const filePickerForm = document.createElement("form");
98 | filePickerForm.setAttribute("aria-hidden", true);
99 | filePickerForm.innerHTML = '';
100 | /** @type {HTMLInputElement} */
101 | const filePickerInput = filePickerForm.childNodes[0];
102 | filePickerInput.accept = ["image/jpeg", "image/apng", "image/avif", "image/gif", "image/png", "image/svg+xml", "image/webp"].join(",");
103 |
104 | filePickerInput.onchange = () => {
105 | if (!filePickerInput.files.length) return;
106 |
107 | const file = filePickerInput.files[0];
108 | const reader = new FileReader();
109 | reader.onload = event => {
110 | const result = event.target.result;
111 | const id = Spicetify.URI.from(filePickerInput.uri).id;
112 | try {
113 | localStorage.setItem("dribbblish:folder-image:" + id, result);
114 | } catch {
115 | Spicetify.showNotification("File too large");
116 | }
117 | DribbblishShared.loadPlaylistImage?.call();
118 | };
119 | reader.readAsDataURL(file);
120 | };
121 |
122 | // context menu items for custom folder images
123 | new Spicetify.ContextMenu.Item(
124 | "Remove folder image",
125 | ([uri]) => {
126 | const id = Spicetify.URI.from(uri).id;
127 | localStorage.removeItem("dribbblish:folder-image:" + id);
128 | DribbblishShared.loadPlaylistImage?.call();
129 | },
130 | ([uri]) => Spicetify.URI.isFolder(uri) && !ylx,
131 | "x"
132 | ).register();
133 | new Spicetify.ContextMenu.Item(
134 | "Choose folder image",
135 | ([uri]) => {
136 | filePickerInput.uri = uri;
137 | filePickerForm.reset();
138 | filePickerInput.click();
139 | },
140 | ([uri]) => Spicetify.URI.isFolder(uri) && !ylx,
141 | "edit"
142 | ).register();
143 | })();
144 |
145 | // LEGACY NAVBAR ONLY
146 | function legacy() {
147 | if (!Spicetify.Platform) {
148 | setTimeout(legacy, 300);
149 | return;
150 | }
151 |
152 | // allow resizing of the navbar
153 | waitForElement([".Root__nav-bar .LayoutResizer__input"], ([resizer]) => {
154 | const observer = new MutationObserver(updateVariable);
155 | observer.observe(resizer, { attributes: true, attributeFilter: ["value"] });
156 | function updateVariable() {
157 | let value = resizer.value;
158 | if (value < 121) {
159 | value = 72;
160 | document.documentElement.classList.add("left-sidebar-collapsed");
161 | } else {
162 | document.documentElement.classList.remove("left-sidebar-collapsed");
163 | }
164 | document.documentElement.style.setProperty("--nav-bar-width", value + "px");
165 | }
166 | updateVariable();
167 | });
168 |
169 | // allow resizing of the buddy feed
170 | waitForElement([".Root__right-sidebar .LayoutResizer__input"], ([resizer]) => {
171 | const observer = new MutationObserver(updateVariable);
172 | observer.observe(resizer, { attributes: true, attributeFilter: ["value"] });
173 | function updateVariable() {
174 | let value = resizer.value;
175 | let min_value = version < 121200000 ? 321 : 281;
176 | if (value < min_value) {
177 | value = 72;
178 | document.documentElement.classList.add("buddyFeed-hide-text");
179 | } else {
180 | document.documentElement.classList.remove("buddyFeed-hide-text");
181 | }
182 | }
183 | updateVariable();
184 | });
185 |
186 | waitForElement([".main-nowPlayingBar-container"], ([nowPlayingBar]) => {
187 | const observer = new MutationObserver(updateVariable);
188 | observer.observe(nowPlayingBar, { childList: true });
189 | function updateVariable() {
190 | if (nowPlayingBar.childElementCount === 2) {
191 | document.documentElement.classList.add("connected");
192 | } else {
193 | document.documentElement.classList.remove("connected");
194 | }
195 | }
196 | updateVariable();
197 | });
198 |
199 | // add fade effect on playlist/folder list
200 | waitForElement([".main-navBar-navBar .os-viewport.os-viewport-native-scrollbars-invisible"], ([scrollNode]) => {
201 | scrollNode.setAttribute("fade", "bottom");
202 | scrollNode.addEventListener("scroll", () => {
203 | if (scrollNode.scrollTop == 0) {
204 | scrollNode.setAttribute("fade", "bottom");
205 | } else if (scrollNode.scrollHeight - scrollNode.clientHeight - scrollNode.scrollTop == 0) {
206 | scrollNode.setAttribute("fade", "top");
207 | } else {
208 | scrollNode.setAttribute("fade", "full");
209 | }
210 | });
211 | });
212 |
213 | waitForElement([`ul[tabindex="0"]`, `ul[tabindex="0"] .GlueDropTarget--playlists.GlueDropTarget--folders`], ([root, firstItem]) => {
214 | const listElem = firstItem.parentElement;
215 | root.classList.add("dribs-playlist-list");
216 |
217 | /** Replace Playlist name with their pictures */
218 | function loadPlaylistImage() {
219 | for (const item of listElem.children) {
220 | let link = item.querySelector("a");
221 | if (!link) continue;
222 |
223 | let [_, app, uid] = link.pathname.split("/");
224 | let uri;
225 | if (app === "playlist") {
226 | uri = `spotify:playlist:${uid}`;
227 | } else if (app === "folder") {
228 | const base64 = localStorage.getItem("dribbblish:folder-image:" + uid);
229 | let img = link.querySelector("img");
230 | if (!img) {
231 | img = document.createElement("img");
232 | img.classList.add("playlist-picture");
233 | link.prepend(img);
234 | }
235 | img.src = base64 || "https://cdn.jsdelivr.net/gh/spicetify/spicetify-themes@master/Dribbblish/images/tracklist-row-song-fallback.svg";
236 | continue;
237 | }
238 |
239 | Spicetify.CosmosAsync.get(`sp://core-playlist/v1/playlist/${uri}/metadata`, { policy: { picture: true } }).then(res => {
240 | const meta = res.metadata;
241 | let img = link.querySelector("img");
242 | if (!img) {
243 | img = document.createElement("img");
244 | img.classList.add("playlist-picture");
245 | link.prepend(img);
246 | }
247 | img.src = meta.picture || "https://cdn.jsdelivr.net/gh/spicetify/spicetify-themes@master/Dribbblish/images/tracklist-row-song-fallback.svg";
248 | });
249 | }
250 | }
251 |
252 | DribbblishShared.loadPlaylistImage = loadPlaylistImage;
253 | loadPlaylistImage();
254 |
255 | new MutationObserver(loadPlaylistImage).observe(listElem, { childList: true });
256 | });
257 | }
258 |
--------------------------------------------------------------------------------
/Dribbblish/uninstall.ps1:
--------------------------------------------------------------------------------
1 | spicetify config current_theme " "
2 |
3 | $configPath = spicetify -c
4 | $configFile = Get-Content $configPath
5 | $find = $configFile -match "xpui.js_find_8008"
6 | if ($find) {
7 | $configFile = $configFile -replace [regex]::escape($find),""
8 | }
9 | $repl = $configFile -match "xpui.js_repl_8008"
10 | if ($repl) {
11 | $configFile = $configFile -replace [regex]::escape($repl),""
12 | }
13 | Set-Content $configPath $configFile
14 |
15 | spicetify apply
16 |
--------------------------------------------------------------------------------
/Dribbblish/white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dribbblish/white.png
--------------------------------------------------------------------------------
/Dribbblish/windows-shortcut-instruction.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Dribbblish/windows-shortcut-instruction.png
--------------------------------------------------------------------------------
/Flow/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 @Ruixi-Zhang, @yslDevelop, @ian-Liaozy, @alexcasieri30
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Flow/README.md:
--------------------------------------------------------------------------------
1 | # Flow
2 |
3 | ## Screenshots
4 |
5 | ### Ocean
6 |
7 |
8 |
9 | ### Pink
10 |
11 |
12 |
13 | ### Silver
14 |
15 |
16 |
17 | ### Violet
18 |
19 |
20 | ## Author
21 | Made by:
22 | * https://github.com/Ruixi-Zhang
23 | * https://github.com/yslDevelop
24 | * https://github.com/ian-Liaozy
25 | * https://github.com/alexcasieri30
26 |
--------------------------------------------------------------------------------
/Flow/color.ini:
--------------------------------------------------------------------------------
1 | [Pink]
2 | text = 8f7878
3 | gradientTop = ebaf98
4 | gradientBottom = f5d4b7
5 | main = ffe8d9
6 | subtext = 8f7878
7 | button-active = 8f7878
8 | button = ebaf98
9 | sidebar = f5d4b7
10 | player = ebaf98
11 | card-background = e6cfd7
12 | shadow = d9a28d
13 | notification = f5d4b7
14 | notification-error = f5d4b7
15 | card-hover = ffece4
16 |
17 | [Green]
18 | text = 516847
19 | gradientTop = 9bb78e
20 | gradientBottom = b7cfac
21 | main = e8f2e4
22 | subtext = 797a78
23 | button-active = 516847
24 | button = 7d9971
25 | sidebar = b7cfac
26 | player = 9bb78e
27 | card-background = e8ede6
28 | shadow = 7d9971
29 | notification = b7cfac
30 | notification-error = b7cfac
31 | card-hover = ecf8e8
32 |
33 | [Silver]
34 | text = 4c4d4f
35 | gradientTop = b7bbbd
36 | gradientBottom = d3d8db
37 | main = d3d8db
38 | subtext = 8d9092
39 | button-active = a8acad
40 | button = 8d9092
41 | sidebar = ffffff
42 | player = b7bbbd
43 | card-background = e8ede6
44 | shadow = b7bbbd
45 | notification = ffffff
46 | notification-error = ffffff
47 | card-hover = e0e4e4
48 |
49 |
50 | [Violet]
51 | text = 78658b
52 | gradientTop = b9adc4
53 | gradientBottom = d4cade
54 | main = e5dfeb
55 | subtext = 8e7c9a
56 | button-active = a090b0
57 | button = 516847
58 | sidebar = e8ede6
59 | player = b9adc4
60 | card-background = e8ede6
61 | shadow = 847096
62 | notification = b9adc4
63 | notification-error = b9adc4
64 | card-hover = f0e4ec
65 |
66 | [Ocean]
67 | text = 62828a
68 | gradientTop = 9cb9ba
69 | gradientBottom = c1d5d6
70 | main = cadbdb
71 | subtext = 7aa1a2
72 | button-active = 9cb9ba
73 | button = c1d5d6
74 | sidebar = c1d5d6
75 | player = 9cb9ba
76 | card-background = e1ebeb
77 | shadow = 6f9599
78 | notification = cadbdb
79 | notification-error = c1d5d6
80 | card-hover = d8e4e4
81 |
--------------------------------------------------------------------------------
/Flow/screenshots/ocean.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Flow/screenshots/ocean.png
--------------------------------------------------------------------------------
/Flow/screenshots/pink.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Flow/screenshots/pink.png
--------------------------------------------------------------------------------
/Flow/screenshots/silver.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Flow/screenshots/silver.png
--------------------------------------------------------------------------------
/Flow/screenshots/violet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Flow/screenshots/violet.png
--------------------------------------------------------------------------------
/Flow/user.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --gradient-colors: var(--spice-gradienttop), var(--spice-gradientbottom);
3 | }
4 |
5 | .main-rootlist-rootlistItem:hover {
6 | background-color: var(--spice-card-background);
7 | }
8 |
9 | .main-navBar-navBar {
10 | background-image: linear-gradient(var(--gradient-colors));
11 | }
12 |
13 | /* buttons */
14 | .main-navBar-navBarLink {
15 | border-radius: var(--border-radius-2);
16 | color: var(--spice-text);
17 | }
18 | .main-addButton-active,
19 | .main-addButton-active:focus,
20 | .main-addButton-active:hover {
21 | color: var(--spice-player);
22 | }
23 | /* menus */
24 | .main-card-card {
25 | background-image: linear-gradient(var(--gradient-colors));
26 | border-radius: 10px;
27 | }
28 |
29 | .main-card-card:hover {
30 | background-color: var(--spice-card-hover);
31 | border-radius: 10px;
32 | }
33 |
34 | .main-contextMenu-menuItemButton,
35 | .main-userWidget-dropDownMenuItemButton {
36 | /*border-radius: var(--border-radius-2);*/
37 | color: var(--spice-text);
38 | height: 32px;
39 | padding-left: 8px;
40 | }
41 | .main-trackList-trackListHeaderStuck.main-trackList-trackListHeader {
42 | background: transparent;
43 | -webkit-box-shadow: 0 -1px 0 0 var(--spice-player);
44 | box-shadow: 0 -1px 0 0 var(--spice-player);
45 | }
46 | .main-trackList-trackListHeaderStuck .main-trackList-trackListHeaderRow {
47 | border-bottom: 1px solid transparent;
48 | background: var(--spice-main);
49 | }
50 | .Root__now-playing-bar {
51 | grid-area: now-playing-bar;
52 | width: 200px;
53 | z-index: 4;
54 | }
55 | #spicetify-home-config button:disabled,
56 | #spicetify-sidebar-config button:disabled {
57 | /*background-color: var(--spice-button-disabled) !important;*/
58 | color: var(--spice-text) !important;
59 | }
60 |
61 | /* remove gradients */
62 | .main-home-homeHeader,
63 | .main-actionBarBackground-background {
64 | background-image: none;
65 | }
66 | .main-actionBarBackground-background,
67 | .main-home-homeHeader,
68 | .main-topBar-background,
69 | .main-topBar-overlay,
70 | .x-entityHeader-overlay,
71 | .x-actionBarBackground-background,
72 | ._UFTK833WfTNGb4agRTd,
73 | .Ic3iDUCnC09k55peZBfC {
74 | background-color: var(--spice-main) !important;
75 | }
76 | .x-actionBarBackground-background,
77 | .x-entityHeader-overlay,
78 | .Ic3iDUCnC09k55peZBfC,
79 | ._UFTK833WfTNGb4agRTd {
80 | background-image: none !important;
81 | }
82 | .main-entityHeader-backgroundColor {
83 | background: var(--spice-main);
84 | }
85 | .player-controls__buttons--new-icons {
86 | gap: 16px;
87 | margin-bottom: 8px;
88 | display: flex;
89 | flex-direction: column;
90 | flex: 1;
91 | justify-content: center;
92 | align-items: center;
93 | }
94 | .Root__top-container {
95 | display: grid;
96 | grid-template-areas: "left-sidebar main-view right-sidebar now-playing-bar";
97 | grid-template-columns: auto 1fr;
98 | grid-template-rows: 1fr auto;
99 | height: 100%;
100 | min-height: 100%;
101 | position: relative;
102 | width: 100%;
103 | background-color: var(--spice-main);
104 | }
105 | .global-nav .Root__top-container {
106 | grid-template-areas:
107 | "global-nav global-nav global-nav global-nav"
108 | "left-sidebar main-view right-sidebar now-playing-bar"
109 | "left-sidebar main-view right-sidebar now-playing-bar";
110 | grid-template-columns: auto 1fr auto 15vw;
111 | grid-template-rows: 1fr auto;
112 | }
113 | .main-nowPlayingBar-container {
114 | display: flex;
115 | flex-direction: column;
116 | height: 100%;
117 | min-width: 0px;
118 | -webkit-user-select: none;
119 | user-select: none;
120 | }
121 |
122 | .player-controls__left,
123 | .player-controls__right {
124 | flex-direction: column;
125 | }
126 |
127 | .playback-bar {
128 | flex-direction: column;
129 | position: relative;
130 | }
131 |
132 | .playback-bar__progress-time-elapsed {
133 | position: absolute;
134 | left: 16px;
135 | top: 20px;
136 | }
137 | .playback-bar__progress-time-elapsed::after {
138 | content: "/";
139 | margin-left: 6px;
140 | }
141 | .main-playbackBarRemainingTime-container {
142 | margin-left: 56px;
143 | }
144 |
145 | .main-nowPlayingBar-center {
146 | flex: 1;
147 | display: flex;
148 | justify-content: center;
149 | align-items: center;
150 | }
151 |
152 | .main-nowPlayingBar-nowPlayingBar {
153 | align-items: center;
154 | border-radius: 8px;
155 | display: flex;
156 | flex-direction: column;
157 | justify-content: space-between;
158 | align-items: center;
159 | padding: 25px 0;
160 | height: 100%;
161 | background-image: linear-gradient(var(--gradient-colors));
162 | }
163 |
164 | .Root__right-sidebar > aside {
165 | background-image: linear-gradient(var(--gradient-colors));
166 | }
167 |
168 | /*button*/
169 | .encore-dark-theme .encore-bright-accent-set {
170 | --background-base: var(--spice-button-active);
171 | --background-highlight: var(--spice-player);
172 | --background-press: var(--spice-player);
173 | --decorative-subdued: var(--spice-player);
174 | }
175 |
176 | /*tracklist*/
177 | .main-trackList-trackListRow {
178 | border-radius: var(--border-radius-2);
179 | }
180 | .main-trackList-trackListRow:hover {
181 | background-color: var(--spice-card-background);
182 | }
183 | .prog-tooltip {
184 | display: none;
185 | }
186 |
187 | .main-rootlist-rootlistDividerContainer {
188 | position: relative;
189 | /*color: var(--spice-gradientTop)*/
190 | display: none;
191 | }
192 |
193 | .progress-bar {
194 | width: 150px;
195 | }
196 |
197 | .playback-progressbar {
198 | width: 100px;
199 | }
200 |
201 | .volume-bar {
202 | flex: 0;
203 | }
204 |
205 | .main-nowPlayingWidget-nowPlaying {
206 | flex-direction: column;
207 | gap: 16px;
208 | }
209 |
210 | .main-coverSlotCollapsed-container {
211 | transform: none !important;
212 | }
213 |
214 | .main-nowPlayingWidget-nowPlaying > button {
215 | color: var(--spice-text);
216 | }
217 | .main-nowPlayingBar-extraControls {
218 | flex-direction: column;
219 | }
220 | .main-yourLibraryX-entryPoints:nth-child(2) {
221 | background-image: linear-gradient(var(--gradient-colors));
222 | }
223 | .main-yourLibraryX-entryPoints:nth-child(1) {
224 | background-color: var(--spice-gradienttop);
225 | }
226 | /* remove hover effect */
227 | li > div > div::after {
228 | background-color: var(--spice-card-background) !important;
229 | }
230 | li > div::after {
231 | background-color: transparent !important;
232 | }
233 | /* give background to active playlist */
234 | .BoxComponent-group-tinted-listRow-isInteractive-hasLeadingOrMedia-paddingBlockStart_8px-paddingBlockEnd_8px-minBlockSize_56px-padding_8px,
235 | .BoxComponent-group-tinted-listRow-isInteractive-hasFocus-hasLeadingOrMedia-paddingBlockStart_8px-paddingBlockEnd_8px-minBlockSize_56px-padding_8px {
236 | background-color: var(--spice-card-background);
237 | }
238 | /* expanded sidebar buttons */
239 | .search-searchCategory-carouselButton {
240 | background-color: transparent;
241 | }
242 | .search-searchCategory-carouselButton:hover {
243 | background-color: var(--spicecard-background);
244 | }
245 | .main-yourLibraryX-iconOnly:hover {
246 | background-color: var(--spice-card-background);
247 | color: var(--spice-text);
248 | }
249 | .Root__nav-bar {
250 | background-color: var(--spice-main);
251 | }
252 | /* give active nav tab a background */
253 | .main-navBar-mainNav li:has(> .active) {
254 | background-color: var(--spice-card-background);
255 | border-radius: 4px;
256 | }
257 | .view-homeShortcutsGrid-shortcut {
258 | background-image: linear-gradient(var(--gradient-colors));
259 | }
260 | .main-actionBar-ActionBarRow > * {
261 | color: var(--spice-text);
262 | }
263 | .main-actionBar-ActionBarRow svg:not(.main-playButton-PlayButton svg) {
264 | color: var(--spice-text);
265 | }
266 | .x-sortBox-sortDropdown {
267 | color: inherit;
268 | }
269 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 morpheusthewhite
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Matte/README.md:
--------------------------------------------------------------------------------
1 | # Matte
2 |
3 | ## Screenshots
4 |
5 | ### Matte
6 |
7 | 
8 |
9 | ### Periwinkle
10 |
11 | 
12 |
13 | ### Periwinkle-Dark
14 |
15 | 
16 |
17 | ### Porcelain
18 |
19 | 
20 |
21 | ### Gray-Dark1
22 |
23 | 
24 |
25 | ### Gray-Dark2
26 |
27 | 
28 |
29 | ### Gray-Dark3
30 |
31 | 
32 |
33 | ### Gray
34 |
35 | 
36 |
37 | ### Gray-Light
38 |
39 | 
40 |
41 | ## More
42 |
43 | ### Description
44 |
45 | a Spicetify theme which features a distinct top bar, quick-to-edit CSS variables, and color schemes from Windows visual styles by KDr3w
46 |
47 | ### Credits
48 |
49 | - Based on [Matte by KDr3w](https://www.deviantart.com/kdr3w/art/Matte-758699852) and their [other themes](https://www.deviantart.com/kdr3w/gallery/68078309/windows-10-themes)
50 |
51 | - Created by [darkthemer](https://github.com/darkthemer)
52 |
53 | ### Notes
54 |
55 | - Check the very top of `user.css` for quick configs
56 |
57 | - If you use the Marketplace, go to `Marketplace > Snippets > + Add CSS` and then paste the quick configs found in `user.css`. Edit these as you wish.
58 |
59 | ```css
60 | /* ================================
61 | USER-EDITABLE VARIABLES
62 | ================================ */
63 |
64 | :root {
65 | /* top bar vars */
66 | --top-bar-padding-top: 45px;
67 | --top-bar-padding-right: 20px;
68 | --top-bar-padding-bottom: 5px;
69 | --top-bar-padding-left: 20px;
70 | --tab-border-radius: 6px;
71 | --top-bar-border-width: 2px;
72 |
73 | /* sidebar vars */
74 | --sidebar-button-border-radius: 4px;
75 | --sidebar-border-width: 2px;
76 |
77 | /* player vars */
78 | --player-height: 90px;
79 | --player-padding: 0 20px;
80 | --player-border-width: 2px;
81 |
82 | /* scrollbar vars */
83 | --scrollbar-border-radius: 4px;
84 | --scrollbar-width: 6px;
85 | --scrollbar-width-hover: 6px;
86 | }
87 | ```
88 |
89 | - For Windows users, here's how to make the window controls' background match with the topbar background
90 |
91 | - Enable [CEF/Spotify Tweaks](https://windhawk.net/mods/cef-titlebar-enabler-universal) in Windhawk (recommended)
92 |
93 | - Put this snippet into your `user.css` (or through the Marketplace's custom CSS feature) (alternative)
94 |
95 | ```css
96 | /* transparent window controls background */
97 | .spotify__container--is-desktop:not(.fullscreen) body::after {
98 | content: "";
99 | position: absolute;
100 | right: 0;
101 | z-index: 999;
102 | backdrop-filter: brightness(2.12);
103 | /* page zoom [ctrl][+] or [ctrl][-]
104 | edit width and height accordingly
105 | */
106 | width: 135px;
107 | height: 48px;
108 | }
109 | ```
110 |
111 | 
112 |
--------------------------------------------------------------------------------
/Matte/screenshots/winctrl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Matte/screenshots/winctrl.png
--------------------------------------------------------------------------------
/Matte/screenshots/ylx-gray-dark1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Matte/screenshots/ylx-gray-dark1.png
--------------------------------------------------------------------------------
/Matte/screenshots/ylx-gray-dark2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Matte/screenshots/ylx-gray-dark2.png
--------------------------------------------------------------------------------
/Matte/screenshots/ylx-gray-dark3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Matte/screenshots/ylx-gray-dark3.png
--------------------------------------------------------------------------------
/Matte/screenshots/ylx-gray-light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Matte/screenshots/ylx-gray-light.png
--------------------------------------------------------------------------------
/Matte/screenshots/ylx-gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Matte/screenshots/ylx-gray.png
--------------------------------------------------------------------------------
/Matte/screenshots/ylx-matte.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Matte/screenshots/ylx-matte.png
--------------------------------------------------------------------------------
/Matte/screenshots/ylx-periwinkle-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Matte/screenshots/ylx-periwinkle-dark.png
--------------------------------------------------------------------------------
/Matte/screenshots/ylx-periwinkle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Matte/screenshots/ylx-periwinkle.png
--------------------------------------------------------------------------------
/Matte/screenshots/ylx-porcelain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Matte/screenshots/ylx-porcelain.png
--------------------------------------------------------------------------------
/Nightlight/README.md:
--------------------------------------------------------------------------------
1 | # Nightlight
2 |
3 | ## Screenshots
4 |
5 |
6 |
7 | ## Author
8 | Made by:
9 | * https://github.com/iTenerai
10 |
--------------------------------------------------------------------------------
/Nightlight/color.ini:
--------------------------------------------------------------------------------
1 | [Nightlight Colors]
2 | text = FFFFFF
3 | subtext = F1F1F1
4 | main = 1c1622
5 | sidebar = 241c2c
6 | player = 241c2c
7 | card = 241c2c
8 | shadow = 241c2c
9 | selected-row = F1F1F1
10 | button = ae1adb
11 | button-active = ae1adb
12 | button-disabled = 241c2c
13 | tab-active = 241c2c
14 | notification = ae1adb
15 | notification-error = FF4151
16 | misc = ae1adb
17 |
--------------------------------------------------------------------------------
/Nightlight/screenshots/nightlight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Nightlight/screenshots/nightlight.png
--------------------------------------------------------------------------------
/Nightlight/user.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
2 |
3 | * {
4 | font-family: Arial, Helvetica, sans-serif;
5 | }
6 |
7 | h1 {
8 | font-weight: 700 !important;
9 | }
10 |
11 | .main-nowPlayingWidget-nowPlaying .main-trackInfo-name {
12 | color: white;
13 | overflow: unset;
14 | font-size: 20px !important;
15 | background: -webkit-linear-gradient(right, #d7007d, #7a00ef);
16 | font-weight: bold;
17 | border-radius: 15px;
18 | padding-left: 3px;
19 | }
20 |
21 | .main-nowPlayingWidget-nowPlaying .main-trackInfo-artists {
22 | padding-left: 3px;
23 | }
24 |
25 | .main-home-homeHeader,
26 | .main-entityHeader-backgroundColor,
27 | .main-actionBarBackground-background {
28 | display: none;
29 | }
30 |
31 | .main-topBar-overlay,
32 | .main-view-container,
33 | .Root__nav-bar {
34 | background-color: var(--spice-main);
35 | }
36 |
37 | .main-topBar-background {
38 | opacity: 1 !important;
39 | }
40 |
41 | * {
42 | box-shadow: none !important;
43 | }
44 |
45 | .cover-art-image {
46 | border: dotted;
47 | border-radius: 50%;
48 | border-color: #ae1adb;
49 | }
--------------------------------------------------------------------------------
/Onepunch/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_STORE
--------------------------------------------------------------------------------
/Onepunch/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 okarin001
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Onepunch/README.md:
--------------------------------------------------------------------------------
1 | # Onepunch
2 |
3 | ## Screenshots
4 |
5 | #### Dark
6 |
7 | |  |  |  |
8 | | :-------------------------------------------: | :---------------------------------------------: | :-----------------------------------------------: |
9 | | home | album | playlist |
10 | |  |  |  |
11 | | podcast | profile | search (YLX UI) |
12 |
13 | #### Light
14 |
15 | |  |  |  |
16 | | :---------------------------------------------: | :-----------------------------------------------: | :-------------------------------------------------: |
17 | | home | album | playlist |
18 | |  |  |  |
19 | | podcast | profile | settings (YLX UI) |
20 |
21 | #### Legacy
22 |
23 | |  |
24 | | :---------------------------------------------: |
25 | | home (YLX UI) |
26 |
27 | ### Custom Icons
28 | 
29 |
30 | ## More
31 |
32 | ### About
33 |
34 | A simple gruvified spotify theme.
35 |
36 | ### Information
37 |
38 | * To apply this theme:
39 |
40 | ```shell
41 | # for dark theme
42 | spicetify config current_theme Onepunch color_scheme dark
43 | spicetify apply
44 |
45 | #for light theme
46 | spicetify config current_theme Onepunch color_scheme light
47 | spicetify apply
48 |
49 | ```
50 |
51 | * Tested on macOS only and pretty much everything worked. ヘ(・\_|
52 |
53 | ### Contact
54 |
55 | Go **[here](https://github.com/okarin001/Onepunch/issues)** and *check/create* an issue in case you face any problem.
56 |
--------------------------------------------------------------------------------
/Onepunch/color.ini:
--------------------------------------------------------------------------------
1 | [dark]
2 | ; onepunch dark mode
3 |
4 | text = d5c4a1
5 | subtext = b8bb26
6 | extratext = fabd2f
7 | main = 1d2021
8 | main-elevated = 1d2021
9 | highlight-elevated = 32302f
10 | highlight = 32302f
11 | sidebar = 1d2021
12 | player = 1d2021
13 | sec-player = 32302f
14 | card = 32302f
15 | sec-card = fb4934
16 | shadow = 1d2021
17 | selected-row = d3869b
18 | button = 8ec07c
19 | button-active = 8ec07c
20 | button-disabled = 665c54
21 | tab-active = fb4934
22 | notification = fb4934
23 | notification-error = cc2418
24 | misc = 83a598
25 |
26 | [light]
27 | ; onepunch light mode
28 |
29 | text = 504945
30 | subtext = 79740e
31 | extratext = b57614
32 | main = f9f5d7
33 | main-elevated = f9f5d7
34 | highlight-elevated = f2e5bc
35 | highlight = f2e5bc
36 | sidebar = f9f5d7
37 | player = f9f5d7
38 | sec-player = f2e5bc
39 | card = f2e5bc
40 | sec-card = 9d0006
41 | shadow = f9f5d7
42 | selected-row = b16286
43 | button = 427b58
44 | button-active = 427b58
45 | button-disabled = bdae93
46 | tab-active = 9d0006
47 | notification = 9d0006
48 | notification-error = cc2418
49 | misc = 076678
50 |
51 | [legacy]
52 | ; onepunch legacy colors
53 |
54 | text = b8bb26
55 | subtext = d5c4a1
56 | extratext = fabd2f
57 | main = 16191a
58 | main-elevated = 16191a
59 | highlight-elevated = 32302f
60 | highlight = 32302f
61 | sidebar = 16191a
62 | player = 16191a
63 | sec-player = 16191a
64 | card = 32302f
65 | sec-card = fb4934
66 | shadow = 16191a
67 | selected-row = d5c4a1
68 | button = 8ec07c
69 | button-active = 8ec07c
70 | button-disabled = 665c54
71 | tab-active = fb4934
72 | notification = 32302f
73 | notification-error = cc2418
74 | misc = 83a598
--------------------------------------------------------------------------------
/Onepunch/screenshots/dark_album.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Onepunch/screenshots/dark_album.png
--------------------------------------------------------------------------------
/Onepunch/screenshots/dark_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Onepunch/screenshots/dark_home.png
--------------------------------------------------------------------------------
/Onepunch/screenshots/dark_playlist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Onepunch/screenshots/dark_playlist.png
--------------------------------------------------------------------------------
/Onepunch/screenshots/dark_podcast.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Onepunch/screenshots/dark_podcast.png
--------------------------------------------------------------------------------
/Onepunch/screenshots/dark_profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Onepunch/screenshots/dark_profile.png
--------------------------------------------------------------------------------
/Onepunch/screenshots/dark_ylx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Onepunch/screenshots/dark_ylx.png
--------------------------------------------------------------------------------
/Onepunch/screenshots/display.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Onepunch/screenshots/display.gif
--------------------------------------------------------------------------------
/Onepunch/screenshots/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Onepunch/screenshots/icons.png
--------------------------------------------------------------------------------
/Onepunch/screenshots/legacy_ylx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Onepunch/screenshots/legacy_ylx.png
--------------------------------------------------------------------------------
/Onepunch/screenshots/light_album.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Onepunch/screenshots/light_album.png
--------------------------------------------------------------------------------
/Onepunch/screenshots/light_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Onepunch/screenshots/light_home.png
--------------------------------------------------------------------------------
/Onepunch/screenshots/light_playlist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Onepunch/screenshots/light_playlist.png
--------------------------------------------------------------------------------
/Onepunch/screenshots/light_podcast.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Onepunch/screenshots/light_podcast.png
--------------------------------------------------------------------------------
/Onepunch/screenshots/light_profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Onepunch/screenshots/light_profile.png
--------------------------------------------------------------------------------
/Onepunch/screenshots/light_ylx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Onepunch/screenshots/light_ylx.png
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # spicetify community themes
2 |
3 | This is a collection of themes for [spicetify](https://github.com/spicetify/spicetify-cli), a command-line tool to customize Spotify.
4 |
5 | You can add your own theme simply by opening a Pull Request (more info in [CONTRIBUTING.md](./CONTRIBUTING.md)).
6 |
7 | ### **You can find a preview of all the themes in [THEMES.md](./THEMES.md).**
8 |
9 | ## Notes:
10 |
11 | * **These themes require that you have the latest version of Spotify and Spicetify.**
12 | * **To install Dribbblish and Turntable themes, follow the instructions in their READMEs**.
13 | * **Spotify ad-blocked version is not supported.**
14 |
15 | ## Installation and usage
16 |
17 | (If you use Arch Linux you can find this project on the [AUR](https://aur.archlinux.org/packages/spicetify-themes-git/))
18 |
19 | 1. Clone this repository. Make sure [git](https://git-scm.com/) is installed and run:
20 | ```bash
21 | git clone --depth=1 https://github.com/spicetify/spicetify-themes.git
22 | ```
23 |
24 | 2. Copy the files into the [Spicetify Themes folder](https://spicetify.app/docs/development/themes). Run:
25 |
26 | **Linux**
27 |
28 | ```bash
29 | cd spicetify-themes
30 | cp -r * ~/.config/spicetify/Themes
31 | ```
32 |
33 | **MacOS**
34 |
35 | ```bash
36 | cd spicetify-themes
37 | cp -r * ~/.config/spicetify/Themes
38 | ```
39 |
40 | **Windows**
41 |
42 | ```powershell
43 | cd spicetify-themes
44 | cp * "$(spicetify -c | Split-Path)\Themes\" -Recurse
45 | ```
46 |
47 | 3. Choose which theme to apply just by running:
48 | ```bash
49 | spicetify config current_theme THEME_NAME
50 | ```
51 | Some themes have 2 or more different color schemes. After selecting the theme you can switch between them with:
52 | ```bash
53 | spicetify config color_scheme SCHEME_NAME
54 | ```
55 |
56 | ### Extra
57 |
58 | The `_Extra` folder contains additional resources for tweaking the look of
59 | Spotify. More info in its [README](./\_Extra/README.md).
60 |
61 | ## Contributions
62 |
63 | We've set up a separate document for our [contribution guidelines](./CONTRIBUTING.md).
64 |
65 | ## Troubleshooting
66 |
67 | Do not open issues for general support questions as we want to keep GitHub issues for bug reports and feature requests. If you find problems when using or installing these themes, or you need help in modifying a theme then ask for suggestions on the [subreddit](https://www.reddit.com/r/spicetify/) or on the [Discord Server](https://discord.com/invite/VnevqPp2Rr).
68 |
69 | Use GitHub issues ONLY for bugs and requesting new features.
70 |
71 | If you are unsure about which channel to use, go for Reddit or Discord.
72 |
73 | ## Useful resources
74 |
75 | * [Spicetify theme without free version UI elements (e.g. "Upgrade" button)](https://github.com/Daksh777/SpotifyNoPremium)
76 | * [DribbblishDynamic theme for v2](https://github.com/JulienMaille/dribbblish-dynamic-theme)
77 |
--------------------------------------------------------------------------------
/SharkBlue/README.md:
--------------------------------------------------------------------------------
1 | # SharkBlue
2 |
3 | ## Screenshots
4 | 
5 |
6 | ## More
7 | Author: https://github.com/MrBiscuit921
8 | Inspiration: BurntSienna, https://github.com/pjaspinski
--------------------------------------------------------------------------------
/SharkBlue/color.ini:
--------------------------------------------------------------------------------
1 | [Base]
2 | button = 0573ff
3 | sidebar = 242629
4 | player = 242629
5 | main = 303336
6 | button-active = 0573ff
--------------------------------------------------------------------------------
/SharkBlue/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/SharkBlue/screenshot.png
--------------------------------------------------------------------------------
/SharkBlue/user.css:
--------------------------------------------------------------------------------
1 | /* Round Now Playing Bar */
2 | :root {
3 | --border-radius-1: 8px;
4 | /* Play Bar */
5 | --margin-bottom-now-playing-bar: 0.5rem;
6 | --now-playing-bar-height: 5.625rem;
7 | --padding-now-playing-bar: 0.25rem;
8 | --border-radius-now-playing-bar: 0.5rem;
9 | }
10 | .Root__now-playing-bar,
11 | .Root__now-playing-bar footer {
12 | border-radius: var(--border-radius-1) !important;
13 | }
14 | #main::after {
15 | content: ""; /* Empty content */
16 | position: fixed; /* Fix element to viewport */
17 | top: 0;
18 | right: 0;
19 | z-index: 999; /* Position above all other content */
20 | -webkit-backdrop-filter: brightness(
21 | 2.12
22 | ); /* Apply brightness filter to background */
23 | backdrop-filter: brightness(2.12); /* Cross-browser brightness filter */
24 | /* Page zoom control */
25 | /* Adjust width and height based on zoom level */
26 | width: 135px;
27 | height: 40px;
28 | }
29 |
30 | /* Page titles */
31 | h1 {
32 | font-weight: 700 !important;
33 | }
34 |
35 | /* Song name in player */
36 | .main-nowPlayingWidget-nowPlaying .main-trackInfo-name {
37 | overflow: unset;
38 | font-size: 20px !important;
39 | }
40 |
41 | /* Artist name in player */
42 | .main-nowPlayingWidget-nowPlaying .main-trackInfo-artists {
43 | overflow: unset;
44 | font-size: 15px;
45 | }
46 |
47 | .main-type-finale {
48 | line-height: 17px;
49 | }
50 |
51 | /* Icons */
52 | .main-trackList-rowPlayPauseIcon {
53 | transform: scale(1.3);
54 | }
55 |
56 | .x-downloadButton-button svg {
57 | height: 32px;
58 | width: 32px;
59 | }
60 |
61 | /* Progress and remaining time */
62 | .main-playbackBarRemainingTime-container,
63 | .playback-bar__progress-time-elapsed,
64 | .playback-bar__progress-time {
65 | font-size: 15px;
66 | margin-left: 5px;
67 | margin-right: 5px;
68 | }
69 |
70 | /* Player play button */
71 | .main-playPauseButton-button {
72 | background-color: unset;
73 | color: var(--spice-subtext);
74 | }
75 |
76 | .main-playPauseButton-button svg {
77 | height: 28px;
78 | width: 28px;
79 | }
80 |
81 | /* Progress bar */
82 | .progress-bar {
83 | --fg-color: var(--spice-button);
84 | }
85 |
86 | .progress-bar__bg,
87 | .progress-bar__fg,
88 | .progress-bar__fg_wrapper {
89 | height: 5px;
90 | }
91 |
92 | .progress-bar-wrapper {
93 | margin-left: 5px;
94 | margin-right: 5px;
95 | }
96 |
97 | /* Extra controls */
98 | .control-button::before {
99 | font-size: 20px;
100 | }
101 |
102 | .ExtraControls svg {
103 | height: 20px;
104 | width: 20px;
105 | }
106 |
107 | /* Removing gradients */
108 | .main-entityHeader-backgroundColor,
109 | .main-actionBarBackground-background {
110 | background-color: unset !important;
111 | background-image: none;
112 | }
113 |
114 | /* Cover shadow */
115 | .main-entityHeader-shadow {
116 | -webkit-box-shadow: 0 4px 20px rgba(var(--spice-rgb-shadow), 0.5);
117 | box-shadow: 0 4px 20px rgba(var(--spice-rgb-shadow), 0.5);
118 | }
119 |
120 | /* Top bar */
121 | .main-topBar-background {
122 | background-color: #3a3d42 !important;
123 | }
124 |
125 | /* Playing icon */
126 | .main-trackList-playingIcon {
127 | filter: saturate(0%);
128 | }
129 |
130 | /* Playlist like button */
131 | .main-actionBar-ActionBarRow .main-addButton-button .Svg-ulyrgf-0 {
132 | height: unset;
133 | width: unset;
134 | }
135 |
136 | /* Order button */
137 | .x-sortBox-sortDropdown {
138 | margin-top: 3px;
139 | }
140 |
141 | /* Sidebar playlists menu */
142 | .main-rootlist-rootlistDividerGradient {
143 | background: unset;
144 | }
145 |
146 | .main-rootlist-rootlistDivider {
147 | background-color: var(--spice-button);
148 | }
149 |
150 | /* Search box */
151 | .x-searchInput-searchInputInput {
152 | font-size: 18px;
153 | }
154 |
155 | /* Aritsts names */
156 | .main-type-mesto {
157 | font-size: 16px;
158 | line-height: 20px;
159 | }
160 |
161 | /* Songs names */
162 | .main-type-ballad {
163 | font-size: 18px;
164 | }
165 |
166 | /* Cards descriptions */
167 | .main-cardSubHeader-root {
168 | overflow: hidden !important;
169 | }
170 |
171 | /* Ad title */
172 | .desktoproutes-homepage-takeover-ad-hptoNativeOriginal-header {
173 | font-weight: 700 !important;
174 | }
175 |
176 | /* Friends names */
177 | .main-buddyFeed-username a {
178 | color: var(--spice-text) !important;
179 | font-size: 17px;
180 | font-weight: 500;
181 | }
182 |
183 | /* Friends songs and artists */
184 | .main-buddyFeed-artistAndTrackName a,
185 | .main-buddyFeed-playbackContextLink span {
186 | font-size: 13px;
187 | }
188 |
189 | /* Cover height */
190 | .main-coverSlotExpanded-container {
191 | height: var(--nav-bar-width) + 8px;
192 | }
193 |
194 | /* Scrollbars */
195 | .os-scrollbar-handle {
196 | background: var(--spice-button) !important;
197 | border-radius: 8px;
198 | }
199 |
200 | /* Make Scrollbar look better */
201 |
202 | .os-theme-spotify.os-host-transition
203 | > .os-scrollbar-vertical
204 | > .os-scrollbar-track
205 | > .os-scrollbar-handle {
206 | border-radius: 8px;
207 | width: 4px;
208 | background-color: var(--spice-button-disabled);
209 | }
210 | .os-theme-spotify.os-host-transition
211 | > .os-scrollbar-vertical
212 | > .os-scrollbar-track {
213 | width: 4px;
214 | }
215 |
216 | /* Making index column wider so that lighter background that
217 | highlights selected song contains multi-digit song numbers */
218 | /* It looks good up to 4 digits, I figured that no one has playlists with more music than that ;) */
219 | .main-trackList-trackList.main-trackList-indexable
220 | .main-trackList-trackListRowGrid {
221 | grid-template-columns: [index] 48px [first] 6fr [var1] 4fr [var2] 3fr [last] minmax(
222 | 120px,
223 | 1fr
224 | ) !important;
225 | }
226 |
227 | /* Text boxes in settings */
228 | .main-dropDown-dropDown {
229 | background-color: var(--spice-button-disabled);
230 | }
231 |
232 | /* Facebook button */
233 | .x-settings-facebookButton {
234 | background-color: unset !important;
235 | }
236 |
237 | /* Playlist play button color */
238 | .encore-dark-theme .encore-bright-accent-set,
239 | .encore-dark-theme .encore-bright-accent-set:hover {
240 | --background-base: var(--spice-button-active);
241 | --background-highlight: var(--spice-play-hover);
242 | --background-press: var(--spice-play-hover);
243 | }
244 |
245 | /* Player bar */
246 |
247 | .main-nowPlayingBar-container {
248 | justify-content: center;
249 | height: var(--now-playing-bar-height);
250 | width: 100%;
251 | border-radius: var(--border-radius-now-playing-bar);
252 | padding: var(--padding-now-playing-bar);
253 | bottom: var(--margin-bottom-now-playing-bar);
254 | border: var(--default-border-thickness) solid var(--shadow-rgb);
255 | background-color: rgba(var(--spice-rgb-main));
256 | backdrop-filter: blur(var(--blur-radius)) saturate(0.5) brightness(100%);
257 | }
258 |
259 | .main-nowPlayingBar-container .GlueDropTarget,
260 | .main-coverSlotCollapsed-container {
261 | max-height: 56px;
262 | max-width: 56px;
263 | }
264 |
265 | /**** ROUND IMAGES ****/
266 |
267 | /* Expanded Cover Art Image (+ position fix) */
268 | .main-navBar-navBar > :nth-child(3) {
269 | margin: 0 0 0 1px;
270 | border-radius: 6px;
271 | }
272 |
273 | /* Collapsed Cover Art Image */
274 | .cover-art-image,
275 | .artist-artistOverview-sideBlock
276 | > div
277 | > section
278 | > div:nth-child(3)
279 | > section:nth-child(2)
280 | > div
281 | > img,
282 | .view-homeShortcutsGrid-image {
283 | border-radius: 4px;
284 | }
285 |
286 | /*
287 | Playlist Header
288 | Search Category Card Image
289 | List Cards
290 | Local Files Card
291 | Placeholder Profile Card
292 | Artist Overview Side Block
293 | */
294 | .main-entityHeader-shadow,
295 | .x-categoryCard-image,
296 | .x-entityImage-circle,
297 | .main-cardImage-image,
298 | .main-cardImage-imageWrapper,
299 | .main-entityHeader-imagePlaceholder > div,
300 | .artist-artistOverview-sideBlock > div > section {
301 | border-radius: 6px;
302 | }
303 |
304 | /* Circled Artist + Profile Cards (force) */
305 | .main-cardImage-circular,
306 | .main-entityHeader-imagePlaceholder,
307 | .main-entityHeader-circle {
308 | border-radius: 50% !important;
309 | }
310 |
311 | /* Track List Image */
312 | .main-trackList-rowImage {
313 | border-radius: 3px;
314 | }
315 |
316 | /* Home gradient */
317 | .main-home-homeHeader {
318 | background-color: rgba(var(--spice-rgb-button)) !important;
319 | }
320 |
321 | /* Volume bar margins */
322 | .volume-bar .progress-bar {
323 | margin: 0 0.4rem;
324 | }
325 |
326 | .volume-bar .playback-progressbar {
327 | width: 70%;
328 | }
329 |
330 | .volume-bar {
331 | flex: 0 150px;
332 | }
333 |
334 | .ellipsis-one-line.main-type-mesto {
335 | font-size: 14px;
336 | }
337 |
338 | /* Removal of empty space above playlist cover and title on narrow viewports */
339 | .main-entityHeader-container.main-entityHeader-nonWrapped {
340 | min-height: 325px;
341 | height: 15vh;
342 | }
343 |
--------------------------------------------------------------------------------
/Sleek/README.md:
--------------------------------------------------------------------------------
1 | # Sleek
2 |
3 | ### BladeRunner
4 |
5 | 
6 |
7 | ### Cherry
8 |
9 | 
10 |
11 | ### Coral
12 |
13 | 
14 |
15 | ### Deep
16 |
17 | 
18 |
19 | ### Deeper
20 |
21 | 
22 |
23 | ### Greener
24 | 
25 |
26 | ### Elementary
27 |
28 | 
29 |
30 | ### Futura
31 |
32 | 
33 |
34 | ### Nord
35 |
36 | 
37 |
38 | ### Psycho
39 |
40 | 
41 |
42 | ### UltraBlack
43 |
44 | 
45 |
46 | ### Wealthy
47 |
48 | 
49 |
50 | ### Dracula
51 |
52 | 
53 |
54 | ### VantaBlack
55 |
56 | 
57 |
58 | ### RosePine
59 |
60 | 
61 |
62 | ## Info
63 |
64 | A simple, 'sleek' theme that builds upon the basic Spotify UI to create a more stylised experience. Also removes all annoyances from free version, including banner advertisements and upgrade buttons.
65 |
66 | Created by [@harbassan](https://github.com/harbassan)
67 |
68 | ### Changing Color Schemes
69 |
70 | Change the scheme with these commands:
71 |
72 | ```
73 | spicetify config color_scheme
74 | spicetify apply
75 | ```
76 |
--------------------------------------------------------------------------------
/Sleek/ayudark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Sleek/ayudark.png
--------------------------------------------------------------------------------
/Sleek/bladerunner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Sleek/bladerunner.png
--------------------------------------------------------------------------------
/Sleek/catppuccin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Sleek/catppuccin.png
--------------------------------------------------------------------------------
/Sleek/cherry.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Sleek/cherry.png
--------------------------------------------------------------------------------
/Sleek/coral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Sleek/coral.png
--------------------------------------------------------------------------------
/Sleek/deep.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Sleek/deep.png
--------------------------------------------------------------------------------
/Sleek/deeper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Sleek/deeper.png
--------------------------------------------------------------------------------
/Sleek/dracula.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Sleek/dracula.png
--------------------------------------------------------------------------------
/Sleek/eldritch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Sleek/eldritch.png
--------------------------------------------------------------------------------
/Sleek/elementary.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Sleek/elementary.png
--------------------------------------------------------------------------------
/Sleek/futura.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Sleek/futura.png
--------------------------------------------------------------------------------
/Sleek/greener.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Sleek/greener.png
--------------------------------------------------------------------------------
/Sleek/nord.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Sleek/nord.png
--------------------------------------------------------------------------------
/Sleek/psycho.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Sleek/psycho.png
--------------------------------------------------------------------------------
/Sleek/rosepine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Sleek/rosepine.png
--------------------------------------------------------------------------------
/Sleek/ultrablack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Sleek/ultrablack.png
--------------------------------------------------------------------------------
/Sleek/vantablack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Sleek/vantablack.png
--------------------------------------------------------------------------------
/Sleek/wealthy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Sleek/wealthy.png
--------------------------------------------------------------------------------
/StarryNight/README.md:
--------------------------------------------------------------------------------
1 | # StarryNight
2 |
3 | ## Screenshots
4 |
5 | ### Base
6 | 
7 | ### Cotton Candy
8 | 
9 | ### Forest
10 | 
11 | ### Galaxy
12 | 
13 | ### Orange
14 | 
15 | ### Sky
16 | 
17 | ### Sunrise
18 | 
19 |
20 | ## More
21 |
22 | > Playbar panel is resizable using the resize bar from Now Playing View and Queue card.
23 |
24 | ### Created by
25 |
26 | - https://github.com/b-chen00
27 |
28 | ### Credits
29 |
30 | - Shooting stars created by [Delroy Prithvi](https://codepen.io/delroyprithvi/pen/LYyJROR) with copyright/permission notice:
31 |
32 | > Pure CSS Shooting Star Animation Effect Copyright (c) 2021 by Delroy Prithvi (https://codepen.io/delroyprithvi/pen/LYyJROR)
33 |
34 | > Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
35 |
36 | > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
37 |
38 | > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/StarryNight/color.ini:
--------------------------------------------------------------------------------
1 | [Base]
2 | star = FFFFFF
3 | star-glow = FFFFFF
4 | shooting-star = FFFFFF
5 | shooting-star-glow = FFFFFF
6 |
7 | main = 000000 ; becomes 100% transparent via javascript
8 | main-elevated = 152238
9 | card = 152238
10 |
11 | sidebar = 142b44 ; bottom part of sky
12 | sidebar-alt = 000000 ; top part of sky
13 |
14 | text = FFFFFF
15 | subtext = ADB5BD
16 |
17 | button-active = FFF3C4
18 | button = FFF3C4
19 | button-disabled = 000000
20 |
21 | highlight = 191919
22 | highlight-elevated = 152238
23 |
24 | shadow = 000000
25 | selected-row = FFFFFF
26 | misc = 7F7F7F
27 | notification-error = E22134
28 | notification = 4687d6
29 | tab-active = 333333
30 | player = 181818
31 |
32 | [Cotton-candy]
33 | star = FFFFFF
34 | star-glow = FFFFFF
35 | shooting-star = FFFFFF
36 | shooting-star-glow = FFFFFF
37 |
38 | main = 000000
39 | main-elevated = 9f45b0
40 | card = 9f45b0
41 |
42 | sidebar = 509be1
43 | sidebar-alt = ff71b2
44 |
45 | text = FFFFFF
46 | subtext = fff4f4
47 |
48 | button-active = d3e9ff
49 | button = d3e9ff
50 | button-disabled = FFFFFF
51 |
52 | highlight = a763b6
53 | highlight-elevated = 7f78be
54 |
55 | shadow = 000000
56 | selected-row = ffa0ad
57 | misc = 7F7F7F
58 | notification-error = E22134
59 | notification = 4687d6
60 | tab-active = 333333
61 | player = 181818
62 |
63 | [Forest]
64 | star = FFFFFF
65 | star-glow = FFFFFF
66 | shooting-star = FFFFFF
67 | shooting-star-glow = FFFFFF
68 |
69 | main = 000000 ; becomes 100% transparent via javascript
70 | main-elevated = 011502
71 | card = 011502
72 |
73 | sidebar = 14442b ; bottom part of sky
74 | sidebar-alt = 000000 ; top part of sky
75 |
76 | text = FFFFFF
77 | subtext = ADB5BD
78 |
79 | button-active = 9893DA
80 | button = c4c6ff
81 | button-disabled = 000000
82 |
83 | highlight = 191919
84 | highlight-elevated = 011502
85 |
86 | shadow = 000000
87 | selected-row = FFFFFF
88 | misc = DBF9F4
89 | notification-error = E22134
90 | notification = 77be80
91 | tab-active = 333333
92 | player = 181818
93 |
94 | [Galaxy]
95 | star = FFFFFF
96 | star-glow = FFFFFF
97 | shooting-star = FFFFFF
98 | shooting-star-glow = FFFFFF
99 |
100 | main = 000000
101 | main-elevated = 9f45b0
102 | card = 9f45b0
103 |
104 | sidebar = b133c9
105 | sidebar-alt = 00076f
106 |
107 | text = ffe4f2
108 | subtext = FFFFFF
109 |
110 | button-active = FFF3C4
111 | button = FFF3C4
112 | button-disabled = 939bb6
113 |
114 | highlight = 9d00ff
115 | highlight-elevated = 9d00ff
116 |
117 | shadow = 000000
118 | selected-row = FFFFFF
119 | misc = 7F7F7F
120 | notification-error = E22134
121 | notification = 4687d6
122 | tab-active = 333333
123 | player = 181818
124 |
125 | [Orange]
126 | star = ffe234
127 | star-glow = fff3ad
128 | shooting-star = fff099
129 | shooting-star-glow = fffcea
130 |
131 | main = 000000 ; becomes 100% transparent via javascript
132 | main-elevated = e69138
133 | card = c37728
134 |
135 | sidebar = e69138 ; bottom part of sky
136 | sidebar-alt = 000000 ; top part of sky
137 |
138 | text = FFFFFF
139 | subtext = FFFFFF
140 |
141 | button-active = e06666
142 | button = fbe39b
143 | button-disabled = 000000
144 |
145 | highlight = 191919
146 | highlight-elevated = e69138
147 |
148 | shadow = 000000
149 | selected-row = FFFFFF
150 | misc = f9f7db
151 | notification-error = E22134
152 | notification = e69138
153 | tab-active = 333333
154 | player = 181818
155 |
156 | [Sky]
157 | star = FFFFFF
158 | star-glow = FFFFFF
159 | shooting-star = FFFFFF
160 | shooting-star-glow = FFFFFF
161 |
162 | main = 000000
163 | main-elevated = 6b94f5
164 | card = 6b94f5
165 |
166 | sidebar = 62cff4
167 | sidebar-alt = 1e48a9
168 |
169 | text = FFFFFF
170 | subtext = 040a18
171 |
172 | button-active = FFF3C4
173 | button = FFF3C4
174 | button-disabled = 000000
175 |
176 | highlight = 95b3f8
177 | highlight-elevated = aac2f9
178 |
179 | shadow = 000000
180 | selected-row = FFFFFF
181 | misc = 7F7F7F
182 | notification-error = E22134
183 | notification = 4687d6
184 | tab-active = 333333
185 | player = 181818
186 |
187 | [Sunrise]
188 | star = FFFFFF
189 | star-glow = FFFFFF
190 | shooting-star = FFFFFF
191 | shooting-star-glow = FFFFFF
192 |
193 | main = 000000
194 | main-elevated = C49C48
195 | card = C49C48
196 |
197 | sidebar = F83D41
198 | sidebar-alt = FFAE41
199 |
200 | text = FFFFFF
201 | subtext = E0E0E0
202 |
203 | button-active = FFF3C4
204 | button = FFF3C4
205 | button-disabled = 000000
206 |
207 | highlight = 191919
208 | highlight-elevated = C49C48
209 |
210 | shadow = 000000
211 | selected-row = 000000
212 | misc = 7F7F7F
213 | notification-error = E22134
214 | notification = 4687d6
215 | tab-active = 333333
216 | player = 181818
--------------------------------------------------------------------------------
/StarryNight/images/base.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/StarryNight/images/base.png
--------------------------------------------------------------------------------
/StarryNight/images/cotton-candy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/StarryNight/images/cotton-candy.png
--------------------------------------------------------------------------------
/StarryNight/images/forest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/StarryNight/images/forest.png
--------------------------------------------------------------------------------
/StarryNight/images/galaxy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/StarryNight/images/galaxy.png
--------------------------------------------------------------------------------
/StarryNight/images/orange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/StarryNight/images/orange.png
--------------------------------------------------------------------------------
/StarryNight/images/sky.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/StarryNight/images/sky.png
--------------------------------------------------------------------------------
/StarryNight/images/sunrise.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/StarryNight/images/sunrise.png
--------------------------------------------------------------------------------
/StarryNight/theme.js:
--------------------------------------------------------------------------------
1 | function waitForElement(els, func, timeout = 100) {
2 | const queries = els.map((el) => document.querySelector(el));
3 | if (queries.every((a) => a)) {
4 | func(queries);
5 | } else if (timeout > 0) {
6 | setTimeout(waitForElement, 300, els, func, --timeout);
7 | }
8 | }
9 |
10 | function random(min, max) {
11 | // min inclusive max exclusive
12 | return Math.random() * (max - min) + min;
13 | }
14 |
15 | waitForElement(['.Root__top-container'], ([topContainer]) => {
16 | const r = document.documentElement;
17 | const rs = window.getComputedStyle(r);
18 |
19 | const backgroundContainer = document.createElement('div');
20 | backgroundContainer.className = 'starrynight-bg-container';
21 | topContainer.appendChild(backgroundContainer);
22 |
23 | // to position stars and shooting stars between the background and everything else
24 | const rootElement = document.querySelector('.Root__top-container');
25 | rootElement.style.zIndex = '0';
26 |
27 | // create the stars
28 | const canvasSize =
29 | backgroundContainer.clientWidth * backgroundContainer.clientHeight;
30 | const starsFraction = canvasSize / 4000;
31 | for (let i = 0; i < starsFraction; i++) {
32 | const size = Math.random() < 0.5 ? 1 : 2;
33 |
34 | const star = document.createElement('div');
35 | star.style.position = 'absolute';
36 | star.style.left = `${random(0, 99)}%`;
37 | star.style.top = `${random(0, 99)}%`;
38 | star.style.opacity = random(0.5, 1);
39 | star.style.width = `${size}px`;
40 | star.style.height = `${size}px`;
41 | star.style.backgroundColor = rs.getPropertyValue('--spice-star');
42 | star.style.zIndex = '-1';
43 | star.style.borderRadius = '50%';
44 |
45 | if (Math.random() < 1 / 5) {
46 | star.style.animation = `twinkle${
47 | Math.floor(Math.random() * 4) + 1
48 | } 5s infinite`;
49 | }
50 |
51 | backgroundContainer.appendChild(star);
52 | }
53 |
54 | // handles resizing of playbar panel to match right sidebar below it
55 | const playbar = document.querySelector('.Root__now-playing-bar');
56 | waitForElement(['.Root__right-sidebar'], ([rightbar]) => {
57 | const resizeObserver = new ResizeObserver((entries) => {
58 | for (const entry of entries) {
59 | if (entry.target === rightbar) {
60 | let newWidth = entry.contentRect.width;
61 | if (newWidth === 0) {
62 | const localStorageWidth = localStorage.getItem(
63 | '223ni6f2epqcidhx5etjafeai:panel-width-saved'
64 | );
65 | if (localStorageWidth) {
66 | newWidth = localStorageWidth;
67 | } else {
68 | newWidth = 420;
69 | }
70 | }
71 | playbar.style.width = `${newWidth}px`;
72 | break;
73 | }
74 | }
75 | });
76 |
77 | resizeObserver.observe(rightbar);
78 | });
79 |
80 | waitForElement(['[data-encore-id="buttonPrimary"]'], ([targetElement]) => {
81 | // start or stop spinning animation based on whether something is playing
82 | const playObserver = new MutationObserver((mutationsList) => {
83 | for (const mutation of mutationsList) {
84 | if (
85 | mutation.type === 'attributes' &&
86 | mutation.attributeName === 'aria-label'
87 | ) {
88 | handleLabelChange();
89 | }
90 | }
91 | });
92 |
93 | const playConfig = { attributes: true, attributeFilter: ['aria-label'] };
94 | playObserver.observe(targetElement, playConfig);
95 | });
96 |
97 | function handleLabelChange() {
98 | const img = document.querySelector(
99 | '.main-nowPlayingWidget-coverArt .cover-art img'
100 | );
101 | // checks the state of the play button on the playbar
102 | if (document.querySelector('[data-encore-id="buttonPrimary"]').getAttribute('aria-label') == 'Pause'){
103 | img.classList.add('running-animation');
104 | } else {
105 | img.classList.remove('running-animation');
106 | }
107 | }
108 |
109 | /*
110 | Pure CSS Shooting Star Animation Effect Copyright (c) 2021 by Delroy Prithvi (https://codepen.io/delroyprithvi/pen/LYyJROR)
111 |
112 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
113 |
114 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
115 |
116 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
117 | */
118 | for (let i = 0; i < 4; i++) {
119 | const shootingstar = document.createElement('span');
120 | shootingstar.className = 'shootingstar';
121 | if (Math.random() < 0.75) {
122 | shootingstar.style.top = '-4px'; // hidden off screen when animation is delayed
123 | shootingstar.style.right = `${random(0, 90)}%`;
124 | } else {
125 | shootingstar.style.top = `${random(0, 50)}%`;
126 | shootingstar.style.right = '-4px'; // hidden when animation is delayed
127 | }
128 |
129 | const shootingStarGlowColor = `rgba(${rs.getPropertyValue(
130 | '--spice-rgb-shooting-star-glow'
131 | )},${0.1})`;
132 | shootingstar.style.boxShadow = `0 0 0 4px ${shootingStarGlowColor}, 0 0 0 8px ${shootingStarGlowColor}, 0 0 20px ${shootingStarGlowColor}`;
133 |
134 | shootingstar.style.animationDuration = `${
135 | Math.floor(Math.random() * 3) + 3
136 | }s`;
137 | shootingstar.style.animationDelay = `${Math.floor(Math.random() * 7)}s`;
138 |
139 | backgroundContainer.appendChild(shootingstar);
140 |
141 | shootingstar.addEventListener('animationend', () => {
142 | if (Math.random() < 0.75) {
143 | shootingstar.style.top = '-4px'; // hidden off screen when animation is delayed
144 | shootingstar.style.right = `${random(0, 90)}%`;
145 | } else {
146 | shootingstar.style.top = `${random(0, 50)}%`;
147 | shootingstar.style.right = '-4px'; // hidden when animation is delayed
148 | }
149 |
150 | shootingstar.style.animation = 'none'; // Remove animation
151 |
152 | void shootingstar.offsetWidth;
153 |
154 | shootingstar.style.animation = '';
155 | shootingstar.style.animationDuration = `${
156 | Math.floor(Math.random() * 4) + 3
157 | }s`;
158 | });
159 | }
160 | });
--------------------------------------------------------------------------------
/StarryNight/user.css:
--------------------------------------------------------------------------------
1 | .button-module__button___hf2qg_marketplace {
2 | color: var(--spice-subtext)
3 | }
4 |
5 | .main-entityHeader-backgroundColor {
6 | background-color: #00000000 !important;
7 | }
8 |
9 | .main-home-homeHeader {
10 | background-color: #00000000 !important;
11 | background-image: none !important;
12 | }
13 |
14 | .Root__top-container {
15 | background: linear-gradient(180deg, var(--spice-sidebar-alt) 0%, var(--spice-sidebar) 100%);
16 | overflow: hidden;
17 | grid-template-areas:
18 | "left-sidebar main-view now-playing-bar"
19 | "left-sidebar main-view right-sidebar";
20 | grid-template-rows: auto auto 1fr;
21 | }
22 |
23 | .global-nav .Root__top-container {
24 | grid-template-areas:
25 | "global-nav global-nav global-nav"
26 | "left-sidebar main-view now-playing-bar"
27 | "left-sidebar main-view right-sidebar" !important;
28 | }
29 |
30 | .Root__globalNav {
31 | background-color: #00000000 !important;
32 | }
33 |
34 | .ffFwfKcPDbmAPLXzxzKq:before {
35 | background-color: #00000000 !important;
36 | }
37 |
38 | .I0bVSxvqA3rm5HvciMap {
39 | --bgColor: #00000000 !important;
40 | }
41 |
42 | .I0bVSxvqA3rm5HvciMap::after {
43 | --bgColor: #00000000 !important;
44 | }
45 |
46 | .PeLrpasyfBW8ql_bmoAi {
47 | background-color: #00000000 !important;
48 | background-image: none !important;
49 | }
50 |
51 | .PkOz5g82CaoKk1J3GX0e {
52 | background-color: #00000000 !important;
53 | background-image: none !important;
54 | }
55 |
56 | .sv5suqIPUwjgUF_BzM41 {
57 | transform: none !important;
58 | }
59 |
60 | .Root__right-sidebar {
61 | width: min-content;
62 | height: auto !important;
63 | min-height: 100% !important;
64 | }
65 |
66 | .Root__now-playing-bar {
67 | width: var(--panel-width);
68 | }
69 |
70 | .main-topBar-background {
71 | background-color: var(--spice-highlight) !important;
72 | }
73 |
74 | .Root__nav-bar {
75 | background-color: #00000000 !important;
76 | }
77 |
78 | .main-yourLibraryX-libraryContainer {
79 | background: none !important;
80 | }
81 |
82 | .main-trackList-trackListRow:hover {
83 | background-color: var(--spice-highlight);
84 | }
85 |
86 | .main-playPauseButton-button {
87 | background-color: var(--spice-button);
88 | }
89 |
90 | .rX_OmqCngvY5ZCoYBZgb {
91 | background-color: #00000000 !important;
92 | }
93 |
94 | .main-yourLibraryX-entryPoints {
95 | background-color: #00000000 !important;
96 | }
97 |
98 | .marketplace-header {
99 | background-color: #00000000 !important;
100 | }
101 |
102 | .EmeHQXR87mUskYK6xEde {
103 | background-color: #00000000 !important;
104 | }
105 |
106 | .lyrics-lyrics-background {
107 | background-color: #00000000 !important;
108 | }
109 |
110 | .main-actionBarBackground-background {
111 | background-image: none;
112 | background-color: #00000000 !important;
113 | animation: none !important;
114 | -webkit-animation: none !important;
115 | }
116 |
117 | .main-entityHeader-overlay {
118 | background: none !important;
119 | }
120 |
121 | .main-entityHeader-background.main-entityHeader-gradient {
122 | opacity: 0.5;
123 | animation: none !important;
124 | }
125 |
126 | .main-entityHeader-background.main-entityHeader-overlay:after {
127 | background-image: none !important;
128 | animation: none !important;
129 | -webkit-animation: none !important;
130 | }
131 |
132 | .pUNc2aOeOQANHrhYa1GU .RDZ61ETnag1ilfZTkVxe {
133 | color: #00000000 !important;
134 | }
135 |
136 | .playlist-playlist-playlistContent {
137 | background: #00000000 !important;
138 | }
139 |
140 | .main-nowPlayingBar-nowPlayingBar {
141 | min-height: 400px;
142 | }
143 |
144 | .main-nowPlayingBar-container {
145 | flex-direction: column;
146 | min-width: 280px;
147 | max-width: 420px;
148 | }
149 |
150 | .main-nowPlayingBar-nowPlayingBar {
151 | flex-direction: column;
152 | }
153 |
154 | [data-right-sidebar-hidden] .Root__main-view {
155 | grid-area: main-view/main-view/main-view/span 1;
156 | }
157 |
158 | .Root__main-view {
159 | background-color: #00000000 !important;
160 | }
161 |
162 | .main-nowPlayingBar-center {
163 | width: 100%;
164 | }
165 |
166 | .main-nowPlayingBar-left {
167 | width: 100%;
168 | }
169 |
170 | .HD9s7U5E1RLSWKpXmrqx {
171 | background-color: #00000000;
172 | margin: auto;
173 | width: 100%;
174 | }
175 |
176 | .main-nowPlayingWidget-coverArt .cover-art {
177 | height: 220px !important;
178 | width: 220px !important;
179 | margin: auto;
180 | background-color: #00000000;
181 | box-shadow: 0 0 0px var(--spice-rgb-shadow);
182 | }
183 |
184 | .main-nowPlayingWidget-coverArt .cover-art img {
185 | border-radius: 50%;
186 | animation: spin 25s linear infinite;
187 | animation-play-state: paused;
188 | background-color: #00000000;
189 | box-shadow: 0 0 5px 5px var(--spice-text);
190 | }
191 |
192 | .running-animation {
193 | animation-play-state: running !important;
194 | }
195 |
196 | .main-coverSlotCollapsed-container {
197 | width: 100%;
198 | height: 100%;
199 | }
200 |
201 | .main-coverSlotCollapsed-container> :first-child {
202 | width: 100%;
203 | height: 100%;
204 | }
205 |
206 | .main-coverSlotCollapsed-container> :first-child> :first-child {
207 | width: 100%;
208 | height: 100%;
209 | background-color: #00000000;
210 | }
211 |
212 | .main-nowPlayingWidget-coverArt {
213 | width: 100%;
214 | height: 100%;
215 | padding-top: 5px;
216 | padding-bottom: 5px;
217 | background-color: #00000000;
218 | }
219 |
220 | .main-nowPlayingWidget-nowPlaying {
221 | width: 100%;
222 | flex-direction: row;
223 | flex-wrap: wrap;
224 | justify-content: center;
225 | }
226 |
227 | .main-coverSlotCollapsed-expandButton {
228 | right: 25%;
229 | }
230 |
231 | .player-controls__buttons.player-controls__buttons--new-icons {
232 | order: 2;
233 | }
234 |
235 | .playback-bar {
236 | order: 1;
237 | }
238 |
239 | .main-nowPlayingBar-right {
240 | width: 100%;
241 | }
242 |
243 | .main-nowPlayingBar-extraControls {
244 | justify-content: space-evenly;
245 | }
246 |
247 | .main-tag-container {
248 | color: var(--spice-sidebar);
249 | }
250 |
251 | .starrynight-bg-container {
252 | position: fixed;
253 | z-index: 0;
254 | pointer-events: none;
255 | height: 100%;
256 | width: 100%;
257 | top: 0;
258 | left: 0;
259 | background-color: transparent;
260 | }
261 |
262 | .ffFwfKcPDbmAPLXzxzKq {
263 | background-color: #00000000 !important;
264 | }
265 |
266 | @keyframes twinkle1 {
267 | 0% {
268 | box-shadow: 0px 0px 8px 2px var(--spice-star-glow);
269 | }
270 |
271 | 20% {
272 | box-shadow: 0px 0px -8px 2px var(--spice-star-glow);
273 | }
274 |
275 | 40% {
276 | box-shadow: 0px 0px -8px 2px var(--spice-star-glow);
277 | }
278 |
279 | 60% {
280 | box-shadow: 0px 0px -8px 2px var(--spice-star-glow);
281 | }
282 |
283 | 80% {
284 | box-shadow: 0px 0px 8px 2px var(--spice-star-glow);
285 | }
286 |
287 | 100% {
288 | box-shadow: 0px 0px 8px 2px var(--spice-star-glow);
289 | }
290 | }
291 |
292 | @keyframes twinkle2 {
293 | 0% {
294 | box-shadow: 0px 0px 8px 2px var(--spice-star-glow);
295 | }
296 |
297 | 20% {
298 | box-shadow: 0px 0px 8px 2px var(--spice-star-glow);
299 | }
300 |
301 | 40% {
302 | box-shadow: 0px 0px -8px 2px var(--spice-star-glow);
303 | }
304 |
305 | 60% {
306 | box-shadow: 0px 0px -8px 2px var(--spice-star-glow);
307 | }
308 |
309 | 80% {
310 | box-shadow: 0px 0px -8px 2px var(--spice-star-glow);
311 | }
312 |
313 | 100% {
314 | box-shadow: 0px 0px 8px 2px var(--spice-star-glow);
315 | }
316 | }
317 |
318 | @keyframes twinkle3 {
319 | 0% {
320 | box-shadow: 0px 0px -8px 2px var(--spice-star-glow);
321 | }
322 |
323 | 20% {
324 | box-shadow: 0px 0px 8px 2px var(--spice-star-glow);
325 | }
326 |
327 | 40% {
328 | box-shadow: 0px 0px 8px 2px var(--spice-star-glow);
329 | }
330 |
331 | 60% {
332 | box-shadow: 0px 0px 8px 2px var(--spice-star-glow);
333 | }
334 |
335 | 80% {
336 | box-shadow: 0px 0px -8px 2px var(--spice-star-glow);
337 | }
338 |
339 | 100% {
340 | box-shadow: 0px 0px -8px 2px var(--spice-star-glow);
341 | }
342 | }
343 |
344 | @keyframes twinkle4 {
345 | 0% {
346 | box-shadow: 0px 0px -8px 2px var(--spice-star-glow);
347 | }
348 |
349 | 20% {
350 | box-shadow: 0px 0px -8px 2px var(--spice-star-glow);
351 | }
352 |
353 | 40% {
354 | box-shadow: 0px 0px 8px 2px var(--spice-star-glow);
355 | }
356 |
357 | 60% {
358 | box-shadow: 0px 0px 8px 2px var(--spice-star-glow);
359 | }
360 |
361 | 80% {
362 | box-shadow: 0px 0px 8px 2px var(--spice-star-glow);
363 | }
364 |
365 | 100% {
366 | box-shadow: 0px 0px -8px 2px var(--spice-star-glow);
367 | }
368 | }
369 |
370 | @keyframes spin {
371 | from {
372 | transform: rotate(0deg);
373 | }
374 |
375 | to {
376 | transform: rotate(360deg);
377 | }
378 | }
379 |
380 | /*
381 | Pure CSS Shooting Star Animation Effect Copyright (c) 2021 by Delroy Prithvi (https://codepen.io/delroyprithvi/pen/LYyJROR)
382 |
383 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
384 |
385 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
386 |
387 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
388 | */
389 | .shootingstar {
390 | position: absolute;
391 | width: 4px;
392 | height: 4px;
393 | background: var(--spice-shooting-star);
394 | border-radius: 50%;
395 | animation: animate 3s linear;
396 | left: initial;
397 | z-index: -1;
398 | }
399 |
400 | .shootingstar::before {
401 | content: '';
402 | position: absolute;
403 | top: 50%;
404 | transform: translateY(-50%);
405 | width: 300px;
406 | height: 1px;
407 | background: linear-gradient(90deg, var(--spice-shooting-star), transparent);
408 | }
409 |
410 | @keyframes animate {
411 | 0% {
412 | transform: rotate(315deg) translateX(0);
413 | opacity: 1;
414 | }
415 |
416 | 70% {
417 | opacity: 1;
418 | }
419 |
420 | 100% {
421 | transform: rotate(315deg) translateX(-1500px);
422 | opacity: 0;
423 | }
424 | }
425 |
--------------------------------------------------------------------------------
/Turntable/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Grason Chan
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Turntable/README.md:
--------------------------------------------------------------------------------
1 | # Turntable
2 |
3 | Based on Spotify original theme.
4 |
5 | **Note:** Require Spicetify **v2.2.0** or higher! Otherwise, performance problems will happen when the turntable rotate!
6 |
7 | View the **CHANGELOG** [here](https://github.com/grasonchan/spotify-spice/blob/master/CHANGELOG.md).
8 |
9 | ## Screenshots
10 |
11 |
12 |

13 |
14 |
15 |

16 |
17 |
18 |

19 |
20 |
21 | ## More
22 |
23 | ### About Turntable
24 |
25 | Use CSS to achieve, not picture. This means it can be scaled to any size, but make sure the album cover is not blurry.
26 |
27 | Actually, the rotation of the turntable was created at spicetify v1, but in some cases, animation is affected by other factors. I think "fullAppDisplay.js high GPU usage" is the reason. Fortunately, it's normal now!
28 |
29 | ### Info
30 |
31 | Designed and developed by [Grason Chan](https://github.com/grasonchan).
32 |
33 | The turntable inspired by [Netease Music](https://music.163.com) and [Smartisan OS build-in Music Player](https://www.smartisan.com/os/#/beauty) (not include code).
34 |
35 | Develop and test on macOS. If there's any problem, please open issue or PR.
36 |
37 | ### Installation
38 |
39 | 1. add extension - [Full App Display](https://spicetify.app/docs/getting-started/extensions#full-app-display)
40 |
41 | ```shell
42 | spicetify config extensions fullAppDisplay.js
43 | spicetify apply
44 | ```
45 |
46 | 2. put **Turntable** into the **.config/spicetify**
47 |
48 | ```shell
49 | cd spicetify-themes
50 | cp -r Turntable ~/.config/spicetify/Themes
51 | ```
52 |
53 | 3. select the theme, then apply
54 |
55 | ```shell
56 | spicetify config current_theme Turntable
57 | spicetify config inject_theme_js 1
58 | spicetify apply
59 | ```
60 |
61 | ### How to Uninstall
62 |
63 | 1. remove **Turntable** and **rotateTurntable.js**
64 |
65 | ```shell
66 | rm -r ~/.config/spicetify/Themes/Turntable
67 | ```
68 |
69 | 2. config to spicetify default theme
70 |
71 | ```shell
72 | spicetify config current_theme SpicetifyDefault
73 | ```
74 |
75 | 3. remove extension - Full App Display
76 |
77 | ```shell
78 | spicetify config extensions fullAppDisplay.js-
79 | ```
80 |
81 | 4. apply
82 |
83 | ```shell
84 | spicetify apply
85 | ```
86 |
--------------------------------------------------------------------------------
/Turntable/color.ini:
--------------------------------------------------------------------------------
1 | ; empty config to fix `spicetify apply` error ouput
2 |
3 | [turntable]
4 |
--------------------------------------------------------------------------------
/Turntable/screenshots/blur_fad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Turntable/screenshots/blur_fad.png
--------------------------------------------------------------------------------
/Turntable/screenshots/blur_fad_vertical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Turntable/screenshots/blur_fad_vertical.png
--------------------------------------------------------------------------------
/Turntable/screenshots/fad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Turntable/screenshots/fad.png
--------------------------------------------------------------------------------
/Turntable/screenshots/fad_vertical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Turntable/screenshots/fad_vertical.png
--------------------------------------------------------------------------------
/Turntable/screenshots/turntable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Turntable/screenshots/turntable.png
--------------------------------------------------------------------------------
/Turntable/theme.js:
--------------------------------------------------------------------------------
1 | window.addEventListener("load", rotateTurntable = () => {
2 | const SpicetifyOrigin = Spicetify.Player.origin;
3 | fadBtn = document.querySelector(".main-topBar-button[title='Full App Display']");
4 | if (!fadBtn){
5 | const possibleFadBtn = document.querySelectorAll(".main-topBar-button")
6 | for (const btn of possibleFadBtn) {
7 | if (btn._tippy !== undefined && btn._tippy.props.content === "Full App Display") {
8 | fadBtn = btn;
9 | break;
10 | }
11 | }
12 | }
13 |
14 | if (!SpicetifyOrigin?._state || !fadBtn) {
15 | setTimeout(rotateTurntable, 250);
16 | return;
17 | }
18 |
19 | const adModalStyle = document.createElement("style");
20 | const STYLE_FOR_AD_MODAL = `
21 | .ReactModalPortal {
22 | display: none
23 | }
24 | `;
25 | adModalStyle.innerHTML = STYLE_FOR_AD_MODAL;
26 |
27 | const fadHeartContainer = document.createElement("div");
28 | const fadHeart = document.createElement("button");
29 | const fadHeartSvg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
30 | fadHeartContainer.classList.add("fad-heart-container");
31 | fadHeart.classList.add("fad-heart");
32 | fadHeartSvg.setAttribute("width", "16");
33 | fadHeartSvg.setAttribute("height", "16");
34 | fadHeartSvg.setAttribute("viewBox", "0 0 16 16");
35 | fadHeart.appendChild(fadHeartSvg);
36 | fadHeartContainer.appendChild(fadHeart);
37 |
38 | const songPreviewContainer = document.createElement("div");
39 | const previousSong = document.createElement("button");
40 | const nextSong = document.createElement("button");
41 | songPreviewContainer.classList.add("song-preview");
42 | songPreviewContainer.append(previousSong, nextSong);
43 |
44 | const fadArtistSvg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
45 | fadArtistSvg.setAttribute("width", "16");
46 | fadArtistSvg.setAttribute("height", "16");
47 | fadArtistSvg.setAttribute("viewBox", "0 0 16 16");
48 | fadArtistSvg.setAttribute("fill", "currentColor");
49 | fadArtistSvg.innerHTML = Spicetify.SVGIcons.artist;
50 | const fadAlbumSvg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
51 | fadAlbumSvg.setAttribute("width", "16");
52 | fadAlbumSvg.setAttribute("height", "16");
53 | fadAlbumSvg.setAttribute("viewBox", "0 0 16 16");
54 | fadAlbumSvg.setAttribute("fill", "currentColor");
55 | fadAlbumSvg.innerHTML = Spicetify.SVGIcons.album;
56 |
57 | let isPlaying, clickedFadBtn;
58 |
59 | function handleRotate(eventType) {
60 | if (eventType === "load" && !SpicetifyOrigin._state.item) return;
61 |
62 | const coverArt = document.querySelector(".main-nowPlayingWidget-coverArt > .cover-art");
63 | const fadArt = document.querySelector("#fad-art");
64 |
65 | if (
66 | eventType === "load" && !SpicetifyOrigin._state.isPaused
67 | ||
68 | eventType === "playpause" && !isPlaying
69 | ||
70 | !eventType && isPlaying
71 | ) {
72 | coverArt?.style.setProperty("animation-play-state", "running");
73 | fadArt?.style.setProperty("animation-play-state", "running");
74 | if (eventType) isPlaying = true;
75 | } else {
76 | coverArt?.style.setProperty("animation-play-state", "paused");
77 | fadArt?.style.setProperty("animation-play-state", "paused");
78 | if (eventType) isPlaying = false;
79 | }
80 | }
81 |
82 | function handleFadBtn(event) {
83 | event.stopPropagation();
84 | }
85 |
86 | function handleFadControl() {
87 | const fadControlsBtns = document.querySelectorAll("#fad-controls button");
88 |
89 | for (const fadControl of fadControlsBtns) {
90 | fadControl.addEventListener("dblclick", handleFadBtn);
91 | }
92 | }
93 |
94 | function handleFadHeart() {
95 | const isFadHeartContainer = document.querySelector(".fad-heart-container");
96 |
97 | const stateItem = SpicetifyOrigin._state.item;
98 |
99 | if (stateItem.isLocal || stateItem.type === "ad") {
100 | isFadHeartContainer?.remove();
101 | return;
102 | }
103 |
104 | if (!isFadHeartContainer) document.querySelector("#fad-foreground")?.appendChild(fadHeartContainer);
105 |
106 | if (Spicetify.Player.getHeart()) {
107 | fadHeartSvg.innerHTML = Spicetify.SVGIcons["heart-active"];
108 | fadHeart.classList.add("checked");
109 | } else {
110 | fadHeartSvg.innerHTML = Spicetify.SVGIcons.heart;
111 | fadHeart.classList.remove("checked");
112 | }
113 | }
114 |
115 | function handleTracksNamePreview() {
116 | const prevTracks = Spicetify.Queue.prevTracks;
117 | const currentTrack = Spicetify.Queue.track;
118 | const nextTracks = Spicetify.Queue.nextTracks;
119 |
120 | trackCondition = element => !element.contextTrack.metadata.hidden && element.provider !== "ad";
121 |
122 | const prevTrack = prevTracks.slice().reverse().find(trackCondition);
123 | const nextTrack = nextTracks.find(trackCondition);
124 |
125 | const prevTrackTitle = prevTrack.contextTrack.metadata.title;
126 | const currentTrackTitle = currentTrack.contextTrack.metadata.title;
127 | const nextTrackTitle = nextTrack.contextTrack.metadata.title;
128 |
129 | if (currentTrackTitle === prevTrackTitle && currentTrackTitle === nextTrackTitle) {
130 | previousSong.innerHTML = "";
131 | nextSong.innerHTML = "";
132 | } else {
133 | previousSong.innerHTML = `< ${prevTrackTitle}`;
134 | nextSong.innerHTML = `${nextTrackTitle} >`;
135 | }
136 | }
137 |
138 | function handleConfigSwitch() {
139 | const fullAppDisplay = document.querySelector("#full-app-display");
140 | const fadFg = document.querySelector("#fad-foreground");
141 | const genericModal = document.querySelector("generic-modal");
142 |
143 | const stateItem = SpicetifyOrigin._state.item;
144 |
145 | if (!stateItem.isLocal && stateItem.type !== "ad") fadFg.appendChild(fadHeartContainer);
146 | fullAppDisplay.appendChild(songPreviewContainer);
147 |
148 | genericModal.remove();
149 |
150 | handleIcons();
151 | handleRotate();
152 | handleFadControl();
153 | }
154 |
155 | function handleBackdrop(fullAppDisplay, setBlurBackdropBtn) {
156 | if (!+localStorage.getItem("enableBlurFad")) {
157 | fullAppDisplay.dataset.isBlurFad = "true";
158 | setBlurBackdropBtn.classList.remove("disabled");
159 |
160 | localStorage.setItem("enableBlurFad", "1");
161 | } else {
162 | fullAppDisplay.dataset.isBlurFad = "false";
163 | setBlurBackdropBtn.classList.add("disabled");
164 |
165 | localStorage.setItem("enableBlurFad", "0");
166 | }
167 | }
168 |
169 | function handleIcons() {
170 | const iconsConfig = JSON.parse(localStorage.getItem("full-app-display-config")).icons;
171 |
172 | if (!iconsConfig) return;
173 |
174 | const isFadArtistSvg = document.querySelector("#fad-artist svg");
175 | const isFadAlbumSvg = document.querySelector("#fad-album svg");
176 |
177 | if (SpicetifyOrigin._state.item.type === "ad") {
178 | isFadArtistSvg?.remove();
179 | isFadAlbumSvg?.remove();
180 |
181 | return;
182 | }
183 |
184 | if (!isFadArtistSvg) {
185 | const fadArtist = document.querySelector("#fad-artist");
186 | const fadArtistTitle = document.querySelector("#fad-artist span");
187 |
188 | fadArtist?.insertBefore(fadArtistSvg, fadArtistTitle);
189 | }
190 |
191 | if (!isFadAlbumSvg) {
192 | const fadAlbum = document.querySelector("#fad-album");
193 | const fadAlbumTitle = document.querySelector("#fad-album span");
194 |
195 | fadAlbum?.insertBefore(fadAlbumSvg, fadAlbumTitle);
196 | }
197 | }
198 |
199 | function handleContextMenu(fullAppDisplay) {
200 | const configContainer = document.querySelector("#popup-config-container");
201 | const settingRowReferenceNode = document.querySelectorAll("#popup-config-container > div")[0];
202 |
203 | const settingRowContainer = document.createElement("div");
204 | const settingRow = `
205 |
206 |
207 |
208 |
213 |
214 |
215 | `;
216 | settingRowContainer.innerHTML = settingRow;
217 | configContainer.insertBefore(settingRowContainer, settingRowReferenceNode);
218 |
219 | const configSwitchBtns = document.querySelectorAll("#popup-config-container button.switch");
220 | const setBlurBackdropBtn = document.querySelector("[data-blur-fad]");
221 |
222 | for (const configSwitch of configSwitchBtns) {
223 | configSwitch.addEventListener("click", handleConfigSwitch);
224 | }
225 |
226 | setBlurBackdropBtn.addEventListener("click", () => handleBackdrop(fullAppDisplay, setBlurBackdropBtn));
227 | }
228 |
229 | // Todo
230 | function handleToggleFad(isActive) {
231 | if (isActive) {
232 | document.body.append(adModalStyle);
233 | return;
234 | }
235 |
236 | const billboard = document.querySelector("#view-billboard-ad");
237 |
238 | billboard?.closest(".ReactModalPortal").remove();
239 | adModalStyle.remove();
240 | }
241 |
242 | handleRotate("load");
243 |
244 | const nowPlayingBarLeft = document.querySelector(".main-nowPlayingBar-left");
245 | const heartHiddenObserver = new MutationObserver(mutationsList => {
246 | mutationsLoop:
247 | for (const mutation of mutationsList) {
248 | for (const addedNode of mutation.addedNodes) {
249 | if (
250 | addedNode.matches('svg[class]')
251 | ||
252 | addedNode.matches('button[class^="main-addButton-button"]')
253 | ) {
254 | handleFadHeart();
255 |
256 | break mutationsLoop;
257 | }
258 | }
259 |
260 | for (const removedNode of mutation.removedNodes) {
261 | if (
262 | removedNode.matches('button[class^="main-addButton-button"]')
263 | ) {
264 | handleFadHeart();
265 |
266 | break mutationsLoop;
267 | }
268 | }
269 | }
270 | });
271 | heartHiddenObserver.observe(nowPlayingBarLeft, {
272 | childList: true,
273 | subtree: true,
274 | });
275 |
276 | const shuffleBtn = document.querySelector(".main-shuffleButton-button");
277 | const shuffleObserver = new MutationObserver(() => {
278 | setTimeout(handleTracksNamePreview, 500);
279 | });
280 | shuffleObserver.observe(shuffleBtn, {
281 | attributes: true,
282 | });
283 |
284 | Spicetify.Player.addEventListener("onplaypause", () => handleRotate("playpause"));
285 | Spicetify.Player.addEventListener("songchange", () => {
286 | setTimeout(() => {
287 | handleIcons();
288 | handleRotate();
289 | handleTracksNamePreview();
290 | }, 500);
291 | });
292 |
293 | fadHeart.addEventListener("click", Spicetify.Player.toggleHeart);
294 | previousSong.addEventListener("click", () => SpicetifyOrigin.skipToPrevious());
295 | nextSong.addEventListener("click", () => SpicetifyOrigin.skipToNext());
296 |
297 | fadHeart.addEventListener("dblclick", handleFadBtn);
298 | previousSong.addEventListener("dblclick", handleFadBtn);
299 | nextSong.addEventListener("dblclick", handleFadBtn);
300 |
301 | function fadBtnClick(){
302 | const fullAppDisplay = document.querySelector("#full-app-display");
303 | if (!fullAppDisplay){
304 | setTimeout(fadBtnClick, 100);
305 | return;
306 | }
307 |
308 | fullAppDisplay.appendChild(songPreviewContainer);
309 |
310 | if (!clickedFadBtn) {
311 | if (+localStorage.getItem("enableBlurFad")) fullAppDisplay.dataset.isBlurFad = "true";
312 |
313 | handleFadControl();
314 |
315 | fullAppDisplay.addEventListener("contextmenu", () => handleContextMenu(fullAppDisplay), { once: true });
316 |
317 | // fullAppDisplay.addEventListener("dblclick", () => handleToggleFad());
318 |
319 | clickedFadBtn = true;
320 | }
321 |
322 | // handleToggleFad(true);
323 | handleIcons();
324 | handleFadHeart();
325 | handleTracksNamePreview();
326 | handleRotate();
327 | }
328 |
329 | fadBtn.addEventListener("click", () => fadBtnClick());
330 |
331 | });
332 |
--------------------------------------------------------------------------------
/Turntable/user.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --spotify-main-color: #1db954;
3 | --round-value: 50%;
4 | --main-blur-backdrop: blur(20px) saturate(180%);
5 | --shine: conic-gradient(
6 | from 15deg,
7 | transparent,
8 | #222 45deg,
9 | transparent 90deg 180deg,
10 | #222 225deg,
11 | transparent 270deg 360deg
12 | )
13 | }
14 |
15 |
16 | /* Remove Upgrade Button, User Name */
17 | .main-topBar-UpgradeButton,
18 | .main-userWidget-displayName {
19 | display: none
20 | }
21 |
22 |
23 | /* Notification Dot */
24 | .main-userWidget-notificationDot {
25 | color: #f00
26 | }
27 |
28 |
29 | /* Navbar */
30 | .Root__nav-bar {
31 | background-color: #0f0f0f
32 | }
33 |
34 | .main-rootlist-rootlistDividerGradient {
35 | display: none
36 | }
37 |
38 |
39 | /* Search Input */
40 | .x-searchInput-searchInputInput {
41 | background-color: #2a2a2a
42 | }
43 |
44 | .x-searchInput-searchInputInput,
45 | .x-searchInput-searchInputSearchIcon,
46 | .x-searchInput-searchInputClearButton {
47 | color: #c0c0c0 !important
48 | }
49 |
50 | .x-searchInput-searchInputInput::placeholder {
51 | color: #888
52 | }
53 |
54 |
55 | /* Playlist */
56 | .main-entityHeader-backgroundColor,
57 | .main-actionBarBackground-background,
58 | .main-topBar-overlay {
59 | background-color: unset !important
60 | }
61 |
62 | .main-entityHeader-overlay {
63 | background: unset
64 | }
65 |
66 | .main-actionBarBackground-background {
67 | background-image: unset
68 | }
69 |
70 | .main-entityHeader-shadow {
71 | box-shadow: unset
72 | }
73 |
74 | .main-topBar-background {
75 | background-color: #181818 !important
76 | }
77 |
78 | .main-rootlist-wrapper [role="row"]:nth-child(odd) {
79 | background: linear-gradient(to right, #121212, #191919, #121212)
80 | }
81 |
82 |
83 | /* Cover Image */
84 | .main-nowPlayingWidget-coverExpanded {
85 | transform: translateX(-78px) !important;
86 | }
87 |
88 | .main-coverSlotCollapsed-container {
89 | margin-right: 5px
90 | }
91 |
92 | .main-nowPlayingWidget-coverArt .cover-art.shadow,
93 | .main-nowPlayingWidget-coverArt .cover-art-image {
94 | border-radius: var(--round-value)
95 | }
96 |
97 | .main-nowPlayingWidget-coverArt > .cover-art {
98 | clip-path: circle(50% at 50% 50%);
99 | }
100 |
101 | .main-nowPlayingWidget-coverArt .cover-art.shadow {
102 | width: 62px !important;
103 | height: 62px !important;
104 | box-shadow: unset
105 | }
106 |
107 | .main-nowPlayingWidget-coverArt .cover-art-image {
108 | border: 2px solid #aaa;
109 | box-shadow: 0 0 5px rgba(200, 200, 200, .4)
110 | }
111 |
112 | /* Expand & Collapse Button */
113 | .main-coverSlotCollapsed-expandButton {
114 | top: 50%;
115 | left: 50%;
116 | transform: translate(-50%, -50%) !important
117 | }
118 |
119 | .main-coverSlotCollapsed-expandButton,
120 | .main-coverSlotExpandedCollapseButton-collapseButton {
121 | backdrop-filter: var(--main-blur-backdrop);
122 | background: unset;
123 | background-color: rgba(9, 9, 9, .2);
124 | transition: background-color .5s, opacity .5s;
125 | border-radius: var(--round-value)
126 | }
127 |
128 | .main-coverSlotCollapsed-expandButton:hover,
129 | .main-coverSlotExpandedCollapseButton-collapseButton:hover {
130 | background: unset;
131 | background-color: rgba(9, 9, 9, .3);
132 | transform: unset
133 | }
134 |
135 | .main-coverSlotCollapsed-chevron,
136 | .main-coverSlotExpandedCollapseButton-chevron {
137 | padding: 5px;
138 | fill: #fff;
139 | transition: fill .5s
140 | }
141 |
142 | .main-coverSlotCollapsed-expandButton:hover .main-coverSlotCollapsed-chevron,
143 | .main-coverSlotExpandedCollapseButton-collapseButton:hover .main-coverSlotExpandedCollapseButton-chevron {
144 | fill: #ddd
145 | }
146 |
147 |
148 | /* Progress Bar */
149 | .Root__now-playing-bar {
150 | position: relative
151 | }
152 |
153 | .playback-bar {
154 | width: 100%;
155 | position: absolute;
156 | top: 0;
157 | left: 0
158 | }
159 |
160 | .playback-progressbar {
161 | height: 4px
162 | }
163 |
164 | .x-progressBar-progressBarBg > div > div {
165 | background-color: var(--spotify-main-color)
166 | }
167 |
168 | .playback-bar__progress-time-elapsed,
169 | .main-playbackBarRemainingTime-container {
170 | position: absolute;
171 | top: 12px;
172 | left: 50%
173 | }
174 |
175 | .playback-bar__progress-time-elapsed {
176 | transform: translateX(calc(-100% - 10px))
177 | }
178 |
179 | .playback-bar__progress-time-elapsed::after {
180 | position: absolute;
181 | left: calc(100% + 10px);
182 | font-weight: bold;
183 | color: var(--spotify-main-color);
184 | content: "/";
185 | transform: translateX(-50%)
186 | }
187 |
188 | .main-playbackBarRemainingTime-container {
189 | transform: translateX(10px)
190 | }
191 |
192 | .player-controls {
193 | margin-top: 38px
194 | }
195 |
196 |
197 | /* Full App Display */
198 | #full-app-display {
199 | background: radial-gradient(#242424, #1f1f1f)
200 | }
201 |
202 | #fad-background {
203 | display: none
204 | }
205 |
206 | #fad-art,
207 | #fad-art-image,
208 | #fad-art-inner {
209 | border-radius: var(--round-value) !important
210 | }
211 |
212 | #fad-art {
213 | width: 268px !important;
214 | margin: 80px 100px;
215 | position: relative
216 | }
217 |
218 | #fad-art-image {
219 | box-shadow: 0 0 10px rgba(3, 3, 3, .5) inset
220 | }
221 |
222 | #fad-art-inner {
223 | display: none
224 | }
225 |
226 | #fad-art::before, #fad-art::after {
227 | width: 100%;
228 | height: 100%;
229 | position: absolute;
230 | top: 0;
231 | left: 0;
232 | border-radius: 50%;
233 | content: ''
234 | }
235 |
236 | #fad-art::before {
237 | background:
238 | var(--shine),
239 | radial-gradient(#333, #000);
240 | box-shadow:
241 | 0 0 5px #0a0a0a inset,
242 | 0 0 5px #000;
243 | transform: scale(1.5)
244 | }
245 |
246 | #fad-art::after {
247 | background-color: rgba(60, 60, 60, .1);
248 | transform: scale(1.65);
249 | z-index: -1
250 | }
251 |
252 | #fad-details {
253 | max-width: 520px !important
254 | }
255 |
256 | #fad-details #fad-title {
257 | font-size: 32px
258 | }
259 |
260 | #fad-details #fad-artist {
261 | margin-top: 10px;
262 | font-size: 24px
263 | }
264 |
265 | #fad-details #fad-album {
266 | margin-top: 6px;
267 | font-size: 16px
268 | }
269 |
270 | #fad-details #fad-artist > *,
271 | #fad-details #fad-album > *,
272 | #fad-details #fad-status > #fad-controls > * > svg {
273 | vertical-align: middle
274 | }
275 |
276 | #fad-details #fad-artist > svg {
277 | width: 24px;
278 | height: 24px
279 | }
280 |
281 | #fad-details #fad-album > svg {
282 | width: 16px;
283 | height: 16px;
284 | margin-left: 4px;
285 | margin-right: 9px
286 | }
287 |
288 | #fad-play > svg {
289 | width: 24px;
290 | height: 24px
291 | }
292 |
293 | #fad-controls > button > svg {
294 | fill: #ccc
295 | }
296 |
297 | #fad-controls > button:hover > svg {
298 | fill: #fff
299 | }
300 |
301 | #fad-progress-container {
302 | font-size: 12px
303 | }
304 |
305 | #fad-elapsed,
306 | #fad-duration {
307 | min-width: 32px !important
308 | }
309 |
310 | #fad-progress {
311 | height: 2px !important;
312 | background-color: rgba(100, 100, 100, .5) !important
313 | }
314 |
315 | #fad-progress-inner {
316 | background-color: var(--spotify-main-color) !important;
317 | box-shadow: unset !important
318 | }
319 |
320 |
321 | /* Blur the Full App Display */
322 | [data-is-blur-fad = "true"] #fad-background {
323 | display: unset
324 | }
325 |
326 | [data-is-blur-fad = "true"] #fad-art::before {
327 | background:
328 | var(--shine),
329 | radial-gradient(#242424, #000)
330 | }
331 |
332 | [data-is-blur-fad = "true"] #fad-art::after {
333 | background-color: rgba(100, 100, 100, .1);
334 | border: 1px solid rgba(100, 100, 100, .1);
335 | box-shadow:
336 | 0 0 1px rgba(40, 40, 40, .2) inset,
337 | 0 0 1px rgba(200, 200, 200, .2)
338 | }
339 |
340 | [data-is-blur-fad = "true"] #fad-progress {
341 | background-color: rgba(200, 200, 200, .3) !important
342 | }
343 |
344 |
345 | /* Full App Display - heart */
346 | .fad-heart-container {
347 | width: 40px;
348 | height: 40px;
349 | display: flex;
350 | justify-content: center;
351 | align-items: center
352 | }
353 |
354 | .fad-heart {
355 | width: 16px;
356 | height: 16px;
357 | padding: unset !important;
358 | background-color: unset;
359 | border: unset
360 | }
361 |
362 | .fad-heart svg {
363 | fill: #ccc
364 | }
365 |
366 | .fad-heart svg:hover,
367 | .fad-heart.checked svg {
368 | fill: var(--spotify-main-color)
369 | }
370 |
371 |
372 | /* Full App Display - song preview */
373 | .song-preview {
374 | width: 100%;
375 | padding: 0 10%;
376 | position: absolute;
377 | bottom: 20px;
378 | display: flex;
379 | justify-content: space-between;
380 | }
381 |
382 | .song-preview > button {
383 | font-size: 14px;
384 | color: #ccc !important;
385 | background-color: unset;
386 | border: unset
387 | }
388 |
389 | .song-preview > button:hover {
390 | color: #fff !important
391 | }
392 |
393 |
394 | /* Responsive */
395 | @media (max-width: 908px) {
396 | #fad-foreground {
397 | flex-wrap: wrap;
398 | align-content: center
399 | }
400 |
401 | #fad-details {
402 | padding-top: 50px
403 | }
404 | }
405 |
406 | @media (min-width: 1460px) and (min-height: 960px) {
407 | #fad-foreground,
408 | .main-trackCreditsModal-container {
409 | transform: scale(1.2) !important
410 | }
411 |
412 | .song-preview > button {
413 | font-size: 16px
414 | }
415 | }
416 |
417 | /* Rotate turntable */
418 | .main-nowPlayingWidget-coverArt > .cover-art,
419 | #fad-art {
420 | animation: rotate-cover_img 24s linear infinite
421 | }
422 |
423 | @keyframes rotate-cover_img {
424 | from {
425 | transform: rotate(0)
426 | }
427 | to {
428 | transform: rotate(360deg)
429 | }
430 | }
431 |
--------------------------------------------------------------------------------
/Ziro/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021-2022 schnensch
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Ziro/README.md:
--------------------------------------------------------------------------------
1 | # Ziro
2 | ## Screenshots
3 | ### Blue Dark
4 | 
5 | ### Blue Light
6 | 
7 | ### Gray Dark
8 | 
9 | ### Gray Light
10 | 
11 | ### Green Dark
12 | 
13 | ### Green Light
14 | 
15 | ### Orange Dark
16 | 
17 | ### Orange Light
18 | 
19 | ### Purple Dark
20 | 
21 | ### Purple Light
22 | 
23 | ### Red Dark
24 | 
25 | ### Red Light
26 | 
27 | ### Rose Pine
28 | 
29 | ### Rose Pine Moon
30 | 
31 | ### Rose Pine Dawn
32 | 
33 |
34 | ## More
35 | Inspired by the [Zorin GTK theme](https://github.com/ZorinOS/zorin-desktop-themes) and [spot](https://github.com/xou816/spot)
36 |
37 |
38 |
--------------------------------------------------------------------------------
/Ziro/color.ini:
--------------------------------------------------------------------------------
1 | ; COLOR EXPLANATION
2 | ; main, sidebar, player = background
3 | ; card = cards, tracklist, dropdowns, input fields
4 | ; shadow = text on button, tab active & selected row
5 | ; selected row = selected song & tab
6 | ; button-active = play button, outline on focused input
7 | ; button = all other buttons
8 | ; button-disabled = volume & seekbar background, scrollbar handle, borders, hover
9 |
10 | [blue-dark]
11 | text = bde6fb
12 | subtext = 6d8692
13 | main = 1e2529
14 | sidebar = 1e2529
15 | player = 1e2529
16 | card = 171d20
17 | shadow = 171d20
18 | selected-row = bde6fb
19 | button = bde6fb
20 | button-active = bde6fb
21 | button-disabled = 2a3439
22 | tab-active = bde6fb
23 | notification = 171d20
24 | notification-error = fb7c7c
25 | misc = 1e2529
26 |
27 | [blue-light]
28 | text = 123354
29 | subtext = 8495a7
30 | main = f5f7fa
31 | sidebar = f5f7fa
32 | player = f5f7fa
33 | card = ffffff
34 | shadow = ffffff
35 | selected-row = 22c5fd
36 | button = 22c5fd
37 | button-active = 22c5fd
38 | button-disabled = c8d0d9
39 | tab-active = 22c5fd
40 | notification = ffffff
41 | notification-error = fb7c7c
42 | misc = f5f7fa
43 |
44 | [gray-dark]
45 | text = ffffff
46 | subtext = 909090
47 | main = 202020
48 | sidebar = 202020
49 | player = 202020
50 | card = 191919
51 | shadow = 191919
52 | selected-row = ffffff
53 | button = ffffff
54 | button-active = ffffff
55 | button-disabled = 313131
56 | tab-active = ffffff
57 | notification = 191919
58 | notification-error = fb7c7c
59 | misc = 202020
60 |
61 | [gray-light]
62 | text = 29292a
63 | subtext = 909091
64 | main = f7f7f7
65 | sidebar = f7f7f7
66 | player = f7f7f7
67 | card = ffffff
68 | shadow = ffffff
69 | selected-row = 61717c
70 | button = 61717c
71 | button-active = 61717c
72 | button-disabled = cecece
73 | tab-active = 61717c
74 | notification = ffffff
75 | notification-error = fb7c7c
76 | misc = f7f7f7
77 |
78 | [green-dark]
79 | text = bbf1dd
80 | subtext = 6b8a7f
81 | main = 1b2421
82 | sidebar = 1b2421
83 | player = 1b2421
84 | card = 151c19
85 | shadow = 151c19
86 | selected-row = bbf1dd
87 | button = bbf1dd
88 | button-active = bbf1dd
89 | button-disabled = 27332f
90 | tab-active = bbf1dd
91 | notification = 151c19
92 | notification-error = fb7c7c
93 | misc = 1b2421
94 |
95 | [green-light]
96 | text = 19483e
97 | subtext = 88a19c
98 | main = f6f9f9
99 | sidebar = f6f9f9
100 | player = f6f9f9
101 | card = e5eceb
102 | shadow = ffffff
103 | selected-row = 2ae18e
104 | button = 2ae18e
105 | button-active = 2ae18e
106 | button-disabled = cad6d4
107 | tab-active = 2ae18e
108 | notification = e5eceb
109 | notification-error = fb7c7c
110 | misc = f6f9f9
111 |
112 | [orange-dark]
113 | text = fcc8b4
114 | subtext = 927367
115 | main = 271e1b
116 | sidebar = 271e1b
117 | player = 271e1b
118 | card = 1e1715
119 | shadow = 1e1715
120 | selected-row = fcc8b4
121 | button = fcc8b4
122 | button-active = fcc8b4
123 | button-disabled = 372b26
124 | tab-active = fcc8b4
125 | notification = 1e1715
126 | notification-error = fb7c7c
127 | misc = 271e1b
128 |
129 | [orange-light]
130 | text = 563b25
131 | subtext = a89a8e
132 | main = faf8f7
133 | sidebar = faf8f7
134 | player = faf8f7
135 | card = ffffff
136 | shadow = ffffff
137 | selected-row = ff8265
138 | button = ff8265
139 | button-active = ff8265
140 | button-disabled = d9d2cd
141 | tab-active = ff8265
142 | notification = ffffff
143 | notification-error = fb7c7c
144 | misc = faf8f7
145 |
146 | [purple-dark]
147 | text = d8c4f1
148 | subtext = 7d718c
149 | main = 221f26
150 | sidebar = 221f26
151 | player = 221f26
152 | card = 1a181e
153 | shadow = 1a181e
154 | selected-row = d8c4f1
155 | button = d8c4f1
156 | button-active = d8c4f1
157 | button-disabled = 302b36
158 | tab-active = d8c4f1
159 | notification = 1a181e
160 | notification-error = fb7c7c
161 | misc = 221f26
162 |
163 | [purple-light]
164 | text = 402b4d
165 | subtext = 9d91a3
166 | main = f9f7f9
167 | sidebar = f9f7f9
168 | player = f9f7f9
169 | card = ffffff
170 | shadow = ffffff
171 | selected-row = 9f74e7
172 | button = 9f74e7
173 | button-active = 9f74e7
174 | button-disabled = d4ced7
175 | tab-active = 9f74e7
176 | notification = ffffff
177 | notification-error = fb7c7c
178 | misc = f9f7f9
179 |
180 | [red-dark]
181 | text = fdb4b4
182 | subtext = 6d8692
183 | main = 271b1b
184 | sidebar = 271b1b
185 | player = 271b1b
186 | card = 1e1515
187 | shadow = 1e1515
188 | selected-row = fdb4b4
189 | button = fdb4b4
190 | button-active = fdb4b4
191 | button-disabled = 372626
192 | tab-active = fdb4b4
193 | notification = 1e1515
194 | notification-error = fb7c7c
195 | misc = 271b1b
196 |
197 | [red-light]
198 | text = 572920
199 | subtext = a9908b
200 | main = faf7f6
201 | sidebar = faf7f6
202 | player = faf7f6
203 | card = ffffff
204 | shadow = ffffff
205 | selected-row = ff5966
206 | button = ff5966
207 | button-active = ff5966
208 | button-disabled = d9cecb
209 | tab-active = ff5966
210 | notification = ffffff
211 | notification-error = fb7c7c
212 | misc = faf7f6
213 |
214 | [rose-pine]
215 | text = e0def4
216 | subtext = 908caa
217 | main = 191724
218 | sidebar = 191724
219 | player = 191724
220 | card = 26233a
221 | shadow = 26233a
222 | selected-row = ebbcba
223 | button = ebbcba
224 | button-active = ebbcba
225 | button-disabled = 1f1d2e
226 | tab-active = ebbcba
227 | notification = 26233a
228 | notification-error = eb6f92
229 | misc = 191724
230 |
231 | [rose-pine-moon]
232 | text = e0def4
233 | subtext = 908caa
234 | main = 232136
235 | sidebar = 232136
236 | player = 232136
237 | card = 393552
238 | shadow = 393552
239 | selected-row = ebbcba
240 | button = ebbcba
241 | button-active = ebbcba
242 | button-disabled = 2a273f
243 | tab-active = ebbcba
244 | notification = 393552
245 | notification-error = eb6f92
246 | misc = 232136
247 |
248 | [rose-pine-dawn]
249 | text = 575279
250 | subtext = 797593
251 | main = f2e9e1
252 | sidebar = f2e9e1
253 | player = f2e9e1
254 | card = faf4ed
255 | shadow = faf4ed
256 | selected-row = d7827e
257 | button = d7827e
258 | button-active = d7827e
259 | button-disabled = faf4ed
260 | tab-active = d7827e
261 | notification = faf4ed
262 | notification-error = b4637a
263 | misc = f2e9e1
264 |
265 | [tokyo-night]
266 | text = B5B9D6
267 | subtext = 747F8D
268 | main = 242638
269 | sidebar = 242638
270 | player = 242638
271 | card = 1C1D2B
272 | shadow = 1C1D2B
273 | selected-row = B5B9D6
274 | button = B5B9D6
275 | button-active = B5B9D6
276 | button-disabled = 747F8D
277 | tab-active = B5B9D6
278 | notification = B5B9D6
279 | notification-error = 747F8D
280 | misc = 1E2529
281 |
--------------------------------------------------------------------------------
/Ziro/screenshots/rose-pine-dawn.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Ziro/screenshots/rose-pine-dawn.jpg
--------------------------------------------------------------------------------
/Ziro/screenshots/rose-pine-moon.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Ziro/screenshots/rose-pine-moon.jpg
--------------------------------------------------------------------------------
/Ziro/screenshots/rose-pine.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/Ziro/screenshots/rose-pine.jpg
--------------------------------------------------------------------------------
/_Extra/README.md:
--------------------------------------------------------------------------------
1 | # Extras
2 |
3 | This folder contains additional resources for tweaking the look of
4 | Spotify. More info in each subfolder.
5 |
6 | | Folder | Description |
7 | | ----------- | ----------- |
8 | | **SpotifyNoControl** | Hides Spotify Window controls |
9 |
--------------------------------------------------------------------------------
/_Extra/SpotifyNoControl/README.md:
--------------------------------------------------------------------------------
1 | # SpotifyNoControl
2 |
3 | Hides Spotify window control buttons.
4 |
5 | ## Usage
6 |
7 | Windows user, please edit your Spotify shortcut and add flag `--transparent-window-controls` after the Spotify.exe:
8 | 
9 |
10 | Alternatively, you can use `SpotifyNoControl.exe`, included in this folder, to completely remove all windows controls and title menu (three dot at top left corner). Title menu still can be access via Alt key. Closing, minimizing can be done via right click menu at top window region.\
11 | `SpotifyNoControl.exe` could be used as Spotify launcher, it opens Spotify and hides controls right after. You can drag and drop it to your taskbar but make sure you unpin the original Spotify icon first. Alternatively you can make a shortcut for it and add to desktop or start menu.\
12 | Moreover, by default, Spotify adjusted sidebar items and profile menu icon to stay out of Windows native controls region. If you decided to use `SpotifyNoControl.exe` from now on, please open `user.css` file and change variable `--os-windows-icon-dodge` value to 0 as instruction to snap icons back to their original position.
13 |
14 | 
15 |
16 | ## Alternatives
17 |
18 | If the executable does not work for you, try using
19 |
20 | - [AHK implementation](https://github.com/SaifAqqad/AHK_SpotifyNoControl)
21 | - [julienmaille's implementation](https://github.com/spicetify/spicetify-themes/raw/legacy/Dribbblish/SpotifyNoControl.exe)
22 |
--------------------------------------------------------------------------------
/_Extra/SpotifyNoControl/SpotifyNoControl.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/_Extra/SpotifyNoControl/SpotifyNoControl.exe
--------------------------------------------------------------------------------
/_Extra/SpotifyNoControl/windows-shortcut-instruction.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/_Extra/SpotifyNoControl/windows-shortcut-instruction.png
--------------------------------------------------------------------------------
/manifest.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "name": "SharkBlue",
4 | "description": "SharkBlue",
5 | "preview": "SharkBlue/screenshot.png",
6 | "readme": "SharkBlue/README.md",
7 | "usercss": "SharkBlue/user.css",
8 | "schemes": "SharkBlue/color.ini",
9 | "authors": [
10 | {
11 | "name": "Mr Biscuit",
12 | "url": "https://github.com/MrBiscuit921"
13 | }
14 | ],
15 | "tags": [
16 | "latest"
17 | ]
18 | },
19 | {
20 | "name": "BurntSienna",
21 | "description": "BurntSienna",
22 | "preview": "BurntSienna/screenshot.png",
23 | "readme": "BurntSienna/README.md",
24 | "usercss": "BurntSienna/user.css",
25 | "schemes": "BurntSienna/color.ini",
26 | "authors": [
27 | {
28 | "name": "pjaspinski",
29 | "url": "https://github.com/pjaspinski"
30 | }
31 | ],
32 | "tags": [
33 | "latest"
34 | ]
35 | },
36 | {
37 | "name": "Default",
38 | "description": "Default",
39 | "preview": "Default/ocean.png",
40 | "readme": "Default/README.md",
41 | "usercss": "Default/user.css",
42 | "schemes": "Default/color.ini",
43 | "authors": [
44 | {
45 | "name": "Blacksuan19",
46 | "url": "https://github.com/Blacksuan19"
47 | }
48 | ],
49 | "tags": [
50 | "latest"
51 | ]
52 | },
53 | {
54 | "name": "Dreary",
55 | "description": "Dreary",
56 | "preview": "Dreary/deeper.png",
57 | "readme": "Dreary/README.md",
58 | "usercss": "Dreary/user.css",
59 | "schemes": "Dreary/color.ini",
60 | "authors": [
61 | {
62 | "name": "CharlieS1103",
63 | "url": "https://github.com/CharlieS1103"
64 | }
65 | ],
66 | "tags": [
67 | "outdated",
68 | "v1.2.13"
69 | ]
70 | },
71 | {
72 | "name": "Dribbblish",
73 | "description": "Dribbblish",
74 | "preview": "Dribbblish/base.png",
75 | "readme": "Dribbblish/README.md",
76 | "usercss": "Dribbblish/user.css",
77 | "schemes": "Dribbblish/color.ini",
78 | "include": [
79 | "https://raw.githubusercontent.com/spicetify/spicetify-themes/master/Dribbblish/theme.js"
80 | ],
81 | "authors": [
82 | {
83 | "name": "khanhas",
84 | "url": "https://github.com/khanhas"
85 | },
86 | {
87 | "name": "harbassan",
88 | "url": "https://github.com/harbassan"
89 | }
90 | ],
91 | "tags": [
92 | "latest"
93 | ]
94 | },
95 | {
96 | "name": "Matte",
97 | "description": "Has a neat color pallete and a much cleaner interface",
98 | "preview": "Matte/screenshots/ylx-matte.png",
99 | "readme": "Matte/README.md",
100 | "usercss": "Matte/user.css",
101 | "schemes": "Matte/color.ini",
102 | "authors": [
103 | {
104 | "name": "darkthemer",
105 | "url": "https://github.com/darkthemer"
106 | }
107 | ],
108 | "tags": [
109 | "latest"
110 | ]
111 | },
112 | {
113 | "name": "Onepunch",
114 | "description": "Onepunch",
115 | "preview": "Onepunch/screenshots/dark_home.png",
116 | "readme": "Onepunch/README.md",
117 | "usercss": "Onepunch/user.css",
118 | "schemes": "Onepunch/color.ini",
119 | "authors": [
120 | {
121 | "name": "okarin001",
122 | "url": "https://github.com/okarin001"
123 | }
124 | ],
125 | "tags": [
126 | "latest"
127 | ]
128 | },
129 | {
130 | "name": "Sleek",
131 | "description": "Sleek",
132 | "preview": "Sleek/coral.png",
133 | "readme": "Sleek/README.md",
134 | "usercss": "Sleek/user.css",
135 | "schemes": "Sleek/color.ini",
136 | "authors": [
137 | {
138 | "name": "harbassan",
139 | "url": "https://github.com/harbassan"
140 | }
141 | ],
142 | "tags": [
143 | "latest"
144 | ]
145 | },
146 | {
147 | "name": "text",
148 | "description": "a spicetify theme that mimics the look of spotify-tui",
149 | "preview": "text/screenshots/Gruvbox.png",
150 | "readme": "text/README.md",
151 | "usercss": "text/user.css",
152 | "schemes": "text/color.ini",
153 | "authors": [
154 | {
155 | "name": "darkthemer",
156 | "url": "https://github.com/darkthemer"
157 | }
158 | ],
159 | "tags": [
160 | "latest"
161 | ]
162 | },
163 | {
164 | "name": "Turntable",
165 | "description": "Turntable",
166 | "preview": "Turntable/screenshots/turntable.png",
167 | "readme": "Turntable/README.md",
168 | "usercss": "Turntable/user.css",
169 | "schemes": "Turntable/color.ini",
170 | "include": [
171 | "https://raw.githubusercontent.com/spicetify/spicetify-themes/master/Turntable/theme.js"
172 | ],
173 | "authors": [
174 | {
175 | "name": "Grason Chan",
176 | "url": "https://github.com/grasonchan"
177 | }
178 | ],
179 | "tags": [
180 | "latest"
181 | ]
182 | },
183 | {
184 | "name": "Ziro",
185 | "description": "a smooth theme inspired by zorin os",
186 | "preview": "https://raw.githubusercontent.com/schnensch0/ziro/main/preview/mockup.png",
187 | "readme": "Ziro/README.md",
188 | "usercss": "Ziro/user.css",
189 | "schemes": "Ziro/color.ini",
190 | "authors": [
191 | {
192 | "name": "schnensch0",
193 | "url": "https://github.com/schnensch0"
194 | }
195 | ],
196 | "tags": [
197 | "latest"
198 | ]
199 | },
200 | {
201 | "name": "Flow",
202 | "description": "Spicetify theme that has linear gradient effect and vertical playbar",
203 | "preview": "https://raw.githubusercontent.com/spicetify/spicetify-themes/master/Flow/screenshots/pink.png",
204 | "readme": "Flow/README.md",
205 | "usercss": "Flow/user.css",
206 | "schemes": "Flow/color.ini",
207 | "authors": [
208 | {
209 | "name": "Ian Liao",
210 | "url": "https://github.com/ian-Liaozy"
211 | },
212 | {
213 | "name": "Victoria Zhang",
214 | "url": "https://github.com/Ruixi-Zhang"
215 | },
216 | {
217 | "name": "Yu Sung Lee",
218 | "url": "https://github.com/yslDevelop"
219 | },
220 | {
221 | "name": "Alex Casieri",
222 | "url": "https://github.com/alexcasieri30"
223 | }
224 | ],
225 | "tags": [
226 | "latest"
227 | ]
228 | },
229 | {
230 | "name": "Blossom",
231 | "description": "Blossom Theme, a simple theme.",
232 | "preview": "https://user-images.githubusercontent.com/72624799/203471073-4a5e6cf0-a5dc-4ecc-9a12-56d5fc716ac4.png",
233 | "readme": "Blossom/README.md",
234 | "usercss": "Blossom/user.css",
235 | "schemes": "Blossom/color.ini",
236 | "authors": [
237 | {
238 | "name": "Robatortas", "url": "https://github.com/Robatortas"
239 | }
240 | ],
241 | "tags": [
242 | "latest"
243 | ]
244 | },
245 | {
246 | "name": "StarryNight",
247 | "description": "Starry Night",
248 | "preview": "StarryNight/images/base.png",
249 | "readme": "StarryNight/README.md",
250 | "usercss": "StarryNight/user.css",
251 | "schemes": "StarryNight/color.ini",
252 | "include": [
253 | "https://raw.githubusercontent.com/spicetify/spicetify-themes/master/StarryNight/theme.js"
254 | ],
255 | "authors": [
256 | {
257 | "name": "Brandon Chen",
258 | "url": "https://github.com/b-chen00"
259 | },
260 | {
261 | "name": "Julissa Laignelet",
262 | "url": "https://github.com/laignelet16"
263 | }
264 | ],
265 | "tags": [
266 | "latest"
267 | ]
268 | }
269 | ]
270 |
--------------------------------------------------------------------------------
/text/README.md:
--------------------------------------------------------------------------------
1 | # text
2 |
3 | ## Screenshots
4 |
5 | #### Display Images
6 |
7 | ##### with images
8 |
9 | 
10 |
11 | ##### without images
12 |
13 | 
14 |
15 | ### Spotify
16 |
17 | 
18 |
19 | ### Spicetify
20 |
21 | 
22 |
23 | ### CatppuccinMocha
24 |
25 | 
26 |
27 | ### CatppuccinMacchiato
28 |
29 | 
30 |
31 | ### CatppuccinLatte
32 |
33 | 
34 |
35 | ### Dracula
36 |
37 | 
38 |
39 | ### Gruvbox
40 |
41 | 
42 |
43 | ### Kanagawa
44 |
45 | 
46 |
47 | ### Nord
48 |
49 | 
50 |
51 | ### Rigel
52 |
53 | 
54 |
55 | ### RosePine
56 |
57 | 
58 |
59 | ### RosePineMoon
60 |
61 | 
62 |
63 | ### RosePineDawn
64 |
65 | 
66 |
67 | ### Solarized
68 |
69 | 
70 |
71 | ### TokyoNight
72 |
73 | 
74 |
75 | ### TokyoNightStorm
76 |
77 | 
78 |
79 | ### ForestGreen
80 |
81 | 
82 |
83 | ## More
84 |
85 | ### Description
86 |
87 | a spicetify theme that mimics the look of [spotify-tui](https://github.com/Rigellute/spotify-tui)
88 |
89 | ### Credits
90 |
91 | created by [darkthemer](https://github.com/darkthemer/)
92 |
93 | ### Notes
94 |
95 | - **SUGGESTION:** Feel free to edit `color.ini` to swap the accent color (it's green for most of them) into your preferred color based from the color pallete.
96 |
97 | - https://github.com/catppuccin/catppuccin
98 | - https://github.com/dracula/dracula-theme
99 | - https://github.com/morhetz/gruvbox
100 | - https://github.com/rebelot/kanagawa.nvim
101 | - https://github.com/nordtheme/nord
102 | - https://github.com/Rigellute/rigel
103 | - https://github.com/rose-pine/rose-pine-theme
104 | - https://github.com/altercation/solarized
105 | - https://github.com/enkia/tokyo-night-vscode-theme
106 |
107 | - **SUGGESTION:** Check the very top of `user.css` for user settings
108 |
109 | - If you use the Marketplace, go to `Marketplace > Snippets > + Add CSS` and then paste the variables found in `user.css` (also below). Edit these as you wish. If you're following this method, don't forget to add `!important` at the end of each property.
110 |
111 | ```css
112 | /* user settings */
113 | :root {
114 | --font-family: "JetBrains Mono", monospace;
115 | /*
116 | --font-family: 'Anonymous Pro', monospace;
117 | --font-family: 'Azeret Mono', monospace;
118 | --font-family: 'B612 Mono', monospace;
119 | --font-family: 'Courier Prime', monospace;
120 | --font-family: 'Cousine', monospace;
121 | --font-family: 'Cutive Mono', monospace;
122 | --font-family: 'DM Mono', monospace;
123 | --font-family: 'Fira Code', monospace;
124 | --font-family: 'Fira Mono', monospace;
125 | --font-family: 'IBM Plex Mono', monospace;
126 | --font-family: 'JetBrains Mono', monospace;
127 | --font-family: 'M PLUS 1 Code', monospace;
128 | --font-family: 'Major Mono Display', monospace;
129 | --font-family: 'Monofett', monospace;
130 | --font-family: 'Nova Mono', monospace;
131 | --font-family: 'Overpass Mono', monospace;
132 | --font-family: 'Oxygen Mono', monospace;
133 | --font-family: 'PT Mono', monospace;
134 | --font-family: 'Roboto Mono', monospace;
135 | --font-family: 'Share Tech Mono', monospace;
136 | --font-family: 'Sometype Mono', monospace;
137 | --font-family: 'Sono', monospace;
138 | --font-family: 'Source Code Pro', monospace;
139 | --font-family: 'Space Mono', monospace;
140 | --font-family: 'Syne Mono', monospace;
141 | --font-family: 'Ubuntu Mono', monospace;
142 | --font-family: 'VT323', monospace;
143 | --font-family: 'Xanh Mono', monospace;
144 | */
145 | --font-size: 14px;
146 | --font-weight: 400; /* 200 : 900 */
147 | --line-height: 1.2;
148 |
149 | --font-size-lyrics: 14px; /* 1.5em (default) */
150 |
151 | --font-family-header: "asciid";
152 | --font-size-multiplier-header: 4;
153 |
154 | --display-card-image: block; /* none | block */
155 | --display-coverart-image: none; /* none | block */
156 | --display-header-image: none; /* none | block */
157 | --display-sidebar-image: block; /* none | block */
158 | --display-tracklist-image: none; /* none | block */
159 | --display-spicetify-banner-ascii: block; /* none | block */
160 | --display-music-banner-ascii: none; /* none | block */
161 |
162 | --border-radius: 0px;
163 | --border-width: 1px;
164 | --border-style: solid; /* dotted | dashed | solid | double | groove | ridge | inset | outset */
165 | --border-transition: 0.2s ease; /* 'none' to disable */
166 |
167 | --global-nav-margin-top: 40px /* set to '0px' if you disabled window controls */
168 | }
169 | ```
170 |
171 | - **SUGGESTION:** For Windows users, here's how to make the window controls' background match with the topbar background
172 |
173 | - Enable [CEF/Spotify Tweaks](https://windhawk.net/mods/cef-titlebar-enabler-universal) in Windhawk (recommended)
174 |
175 | - Alternatively, Put this snippet into your `user.css` (or through the Marketplace's `+ Add CSS` feature)
176 |
177 | ```css
178 | /* transparent window controls background */
179 | .spotify__container--is-desktop:not(.fullscreen) body::after {
180 | content: "";
181 | position: absolute;
182 | right: 0;
183 | z-index: 999;
184 | backdrop-filter: brightness(2.12);
185 | /* page zoom [ctrl][+] or [ctrl][-]
186 | edit width and height accordingly */
187 | width: 135px;
188 | /* depending on what global status bar
189 | style is enabled height need to be
190 | changed accordingly. */
191 | height: 64px;
192 | }
193 | ```
194 |
195 | 
196 |
--------------------------------------------------------------------------------
/text/color.ini:
--------------------------------------------------------------------------------
1 | ; note: most of the accent colors are set to the green of that color scheme, feel free to change it to your preferred color
2 |
3 | [Spotify]
4 | accent = 1db954
5 | accent-active = 1ed760
6 | accent-inactive = 121212
7 | banner = 1ed760
8 | border-active = 1ed760
9 | border-inactive = 535353
10 | header = 535353
11 | highlight = 1a1a1a
12 | main = 121212
13 | notification = 4687d6
14 | notification-error = e22134
15 | subtext = b3b3b3
16 | text = FFFFFF
17 |
18 | [Spicetify]
19 | accent = 00e089
20 | accent-active = 00e089
21 | accent-inactive = 2E2837
22 | banner = 00e089
23 | border-active = 00e089
24 | border-inactive = 483b5b
25 | header = 483b5b
26 | highlight = 483b5b
27 | main = 2E2837
28 | notification = 00e089
29 | notification-error = e22134
30 | subtext = DEDEDE
31 | text = FFFFFF
32 |
33 | [CatppuccinMocha]
34 | ;https://github.com/catppuccin/catppuccin
35 | accent = a6e3a1
36 | accent-active = a6e3a1
37 | accent-inactive = 1e1e2e
38 | banner = a6e3a1
39 | border-active = a6e3a1
40 | border-inactive = 313244
41 | header = 585b70
42 | highlight = 585b70
43 | main = 1e1e2e
44 | notification = 89b4fa
45 | notification-error = f38ba8
46 | subtext = a6adc8
47 | text = cdd6f4
48 |
49 | [CatppuccinMacchiato]
50 | ;https://github.com/catppuccin/catppuccin
51 | accent = a6da95
52 | accent-active = a6da95
53 | accent-inactive = 24273a
54 | banner = a6da95
55 | border-active = a6da95
56 | border-inactive = 363a4f
57 | header = 5b6078
58 | highlight = 5b6078
59 | main = 24273a
60 | notification = 8aadf4
61 | notification-error = ed8796
62 | subtext = a5adcb
63 | text = cad3f5
64 |
65 | [CatppuccinLatte]
66 | ;https://github.com/catppuccin/catppuccin
67 | accent = a6d189
68 | accent-active = a6d189
69 | accent-inactive = 303446
70 | banner = a6d189
71 | border-active = a6d189
72 | border-inactive = 414559
73 | header = 626880
74 | highlight = 626880
75 | main = 303446
76 | notification = 8caaee
77 | notification-error = e78284
78 | subtext = a5adce
79 | text = c6d0f5
80 |
81 | [Dracula]
82 | ;https://github.com/dracula/dracula-theme
83 | accent = 50fa7b
84 | accent-active = 50fa7b
85 | accent-inactive = 282a36
86 | banner = 50fa7b
87 | border-active = 50fa7b
88 | border-inactive = 44475a
89 | header = 44475a
90 | highlight = 44475a
91 | main = 282a36
92 | notification = 8be9fd
93 | notification-error = ff5555
94 | subtext = 6272a4
95 | text = f8f8f2
96 |
97 | [Gruvbox]
98 | ;https://github.com/morhetz/gruvbox/
99 | accent = 98971a
100 | accent-active = b8bb26
101 | accent-inactive = 282828
102 | banner = b8bb26
103 | border-active = b8bb26
104 | border-inactive = 3c3836
105 | header = 665c54
106 | highlight = 7c6f64
107 | main = 282828
108 | notification = 458588
109 | notification-error = cc241d
110 | subtext = bdae93
111 | text = fbf1c7
112 |
113 | [Kanagawa]
114 | ;https://github.com/rebelot/kanagawa.nvim
115 | accent = 76946A
116 | accent-active = 98BB6C
117 | accent-inactive = 1F1F28
118 | banner = 98BB6C
119 | border-active = 98BB6C
120 | border-inactive = 2A2A37
121 | header = 54546D
122 | highlight = 363646
123 | main = 1F1F28
124 | notification = 7E9CD8
125 | notification-error = E82424
126 | subtext = C8C093
127 | text = DCD7BA
128 |
129 | [Nord]
130 | ;https://github.com/nordtheme/nord
131 | accent = 88c0d0
132 | accent-active = 8fbcbb
133 | accent-inactive = 2e3440
134 | banner = 8fbcbb
135 | border-active = 8fbcbb
136 | border-inactive = 3b4252
137 | header = 4c566a
138 | highlight = 4c566a
139 | main = 2e3440
140 | notification = 5e81ac
141 | notification-error = bf616a
142 | subtext = d8dee9
143 | text = eceff4
144 |
145 | [Rigel]
146 | ;https://github.com/Rigellute/rigel/
147 | accent = 00cccc
148 | accent-active = 00ffff
149 | accent-inactive = 00384d
150 | banner = 00ffff
151 | border-active = 00cccc
152 | border-inactive = 517f8d
153 | header = 517f8d
154 | highlight = 00384d
155 | main = 002635
156 | notification = 7eb2dd
157 | notification-error = ff5a67
158 | subtext = 77929e
159 | text = b7cff9
160 |
161 | [RosePine]
162 | ;https://github.com/rose-pine/rose-pine-theme
163 | accent = ebbcba
164 | accent-active = ebbcba
165 | accent-inactive = 1f1d2e
166 | banner = ebbcba
167 | border-active = ebbcba
168 | border-inactive = 26233a
169 | header = 6e6a86
170 | highlight = 403d52
171 | main = 191724
172 | notification = 31748f
173 | notification-error = eb6f92
174 | subtext = 908caa
175 | text = e0def4
176 |
177 | [RosePineMoon]
178 | ;https://github.com/rose-pine/rose-pine-theme
179 | accent = ea9a97
180 | accent-active = ea9a97
181 | accent-inactive = 2a273f
182 | banner = ea9a97
183 | border-active = ea9a97
184 | border-inactive = 393552
185 | header = 6e6a86
186 | highlight = 44415a
187 | main = 232136
188 | notification = 3e8fb0
189 | notification-error = eb6f92
190 | subtext = 908caa
191 | text = e0def4
192 |
193 | [RosePineDawn]
194 | ;https://github.com/rose-pine/rose-pine-theme
195 | accent = d7827e
196 | accent-active = d7827e
197 | accent-inactive = fffaf3
198 | banner = d7827e
199 | border-active = d7827e
200 | border-inactive = f2e9e1
201 | header = 9893a5
202 | highlight = dfdad9
203 | main = faf4ed
204 | notification = 286983
205 | notification-error = b4637a
206 | subtext = 797593
207 | text = 575279
208 |
209 | [Solarized]
210 | ;https://github.com/altercation/solarized
211 | accent = 859900
212 | accent-active = 859900
213 | accent-inactive = 073642
214 | banner = 859900
215 | border-active = 859900
216 | border-inactive = 073642
217 | header = 586e75
218 | highlight = 073642
219 | main = 002b36
220 | notification = 268bd2
221 | notification-error = dc322f
222 | subtext = 586e75
223 | text = 839496
224 |
225 | [TokyoNight]
226 | ;https://github.com/enkia/tokyo-night-vscode-theme
227 | accent = 9ece6a
228 | accent-active = 9ece6a
229 | accent-inactive = 1a1b26
230 | banner = 9ece6a
231 | border-active = 9ece6a
232 | border-inactive = 24283b
233 | header = 565f89
234 | highlight = 24283b
235 | main = 1a1b26
236 | notification = 7aa2f7
237 | notification-error = f7768e
238 | subtext = 565f89
239 | text = a9b1d6
240 |
241 | [TokyoNightStorm]
242 | ;https://github.com/enkia/tokyo-night-vscode-theme
243 | accent = 9ece6a
244 | accent-active = 9ece6a
245 | accent-inactive = 24283b
246 | banner = 9ece6a
247 | border-active = 9ece6a
248 | border-inactive = 414868
249 | header = 9aa5ce
250 | highlight = 414868
251 | main = 24283b
252 | notification = 7aa2f7
253 | notification-error = f7768e
254 | subtext = 9aa5ce
255 | text = c0caf5
256 |
257 | [ForestGreen]
258 | accent = 939393
259 | accent-active = 939393
260 | accent-inactive = 3e3e29
261 | banner = 939393
262 | border-active = 939393
263 | border-inactive = 515235
264 | header = 656641
265 | highlight = 656641
266 | main = 3e3e29
267 | notification = 8c8e59
268 | notification-error = 787a4d
269 | subtext = 838383
270 | text = a3a3a3
271 |
--------------------------------------------------------------------------------
/text/screenshots/CatppuccinLatte.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/text/screenshots/CatppuccinLatte.png
--------------------------------------------------------------------------------
/text/screenshots/CatppuccinMacchiato.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/text/screenshots/CatppuccinMacchiato.png
--------------------------------------------------------------------------------
/text/screenshots/CatppuccinMocha.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/text/screenshots/CatppuccinMocha.png
--------------------------------------------------------------------------------
/text/screenshots/Dracula.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/text/screenshots/Dracula.png
--------------------------------------------------------------------------------
/text/screenshots/ForestGreen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/text/screenshots/ForestGreen.png
--------------------------------------------------------------------------------
/text/screenshots/Gruvbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/text/screenshots/Gruvbox.png
--------------------------------------------------------------------------------
/text/screenshots/Kanagawa.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/text/screenshots/Kanagawa.png
--------------------------------------------------------------------------------
/text/screenshots/Nord.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/text/screenshots/Nord.png
--------------------------------------------------------------------------------
/text/screenshots/Rigel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/text/screenshots/Rigel.png
--------------------------------------------------------------------------------
/text/screenshots/RosePine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/text/screenshots/RosePine.png
--------------------------------------------------------------------------------
/text/screenshots/RosePineDawn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/text/screenshots/RosePineDawn.png
--------------------------------------------------------------------------------
/text/screenshots/RosePineMoon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/text/screenshots/RosePineMoon.png
--------------------------------------------------------------------------------
/text/screenshots/Solarized.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/text/screenshots/Solarized.png
--------------------------------------------------------------------------------
/text/screenshots/Spicetify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/text/screenshots/Spicetify.png
--------------------------------------------------------------------------------
/text/screenshots/Spotify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/text/screenshots/Spotify.png
--------------------------------------------------------------------------------
/text/screenshots/TokyoNight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/text/screenshots/TokyoNight.png
--------------------------------------------------------------------------------
/text/screenshots/TokyoNightStorm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/text/screenshots/TokyoNightStorm.png
--------------------------------------------------------------------------------
/text/screenshots/winctrl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/text/screenshots/winctrl.png
--------------------------------------------------------------------------------
/text/screenshots/withimg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/text/screenshots/withimg.png
--------------------------------------------------------------------------------
/text/screenshots/withoutimg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spicetify/spicetify-themes/0893ed8938f1fdc05d34e5c989941358f479ad84/text/screenshots/withoutimg.png
--------------------------------------------------------------------------------