Skip to content

Commit b70c4a5

Browse files
authored
feat: Add "What's new" page (#55)
1 parent b5ff351 commit b70c4a5

27 files changed

+1515
-40
lines changed

.github/workflows/deploy.yml

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ jobs:
2525
- name: Checkout
2626
uses: actions/checkout@v4
2727

28+
- name: Setup Node.js
29+
uses: actions/setup-node@v4
30+
with:
31+
node-version: '20'
32+
2833
- name: Configure Umami
2934
run: |
3035
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
@@ -44,6 +49,12 @@ jobs:
4449
echo -e "User-agent: *\nDisallow: /" > public/robots.txt
4550
fi
4651
52+
- name: Generate Changelog HTML
53+
run: |
54+
echo "Generating changelog..."
55+
node scripts/generate-changelog.js
56+
echo "Changelog generated"
57+
4758
- name: Fetch and Update Morphe Download Link
4859
run: |
4960
MANAGER_PROPS_URL="https://raw.githubusercontent.com/MorpheApp/morphe-manager/refs/heads/main/app/gradle.properties"
@@ -94,8 +105,8 @@ jobs:
94105
95106
echo "Updated _redirects file:"
96107
cat public/_redirects
97-
98-
# Update microg.html with the download link
108+
109+
# Update microg.html with the download link
99110
sed -i "s|DOWNLOAD_URL_TEMPLATE|$DOWNLOAD_URL|g" public/microg.html
100111
echo "Updated public/microg.html with MicroG download link."
101112

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,17 @@
88
<img
99
width="512px"
1010
src="https://raw.githubusercontent.com/MorpheApp/.github/refs/heads/main/profile/assets/morphe-wordmark/morphe_wordmark_light.svg"
11-
/>
11+
alt="Morphe"/>
1212
</picture>
1313

1414
[![Website badge](https://img.shields.io/badge/Website-gray.svg?logo=data:image/svg%2bxml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ29weXJpZ2h0IDIwMjUgTW9ycGhlLiBUaGlzIGlzIGNvcHlyaWdodGVkIGNvbnRlbnQsIGFuZCBub3QgbGljZW5zZWQgdW5kZXIgb3BlbiBzb3VyY2UgdGVybXMuCiAgICAgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9Nb3JwaGVBcHAvbW9ycGhlLWJyYW5kaW5nIC0tPgoKPHN2ZwogICB3aWR0aD0iNTEyIgogICBoZWlnaHQ9IjUxMiIKICAgdmlld0JveD0iMCAwIDUxMiA1MTIiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzIiCiAgIHNvZGlwb2RpOmRvY25hbWU9Im1vcnBoZV9sb2dvX2xpZ2h0LnN2ZyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS40LjIgKGViZjBlOTQwZDAsIDIwMjUtMDUtMDgpIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0ibmFtZWR2aWV3MiIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiMwMDAwMDAiCiAgICAgYm9yZGVyb3BhY2l0eT0iMC4yNSIKICAgICBpbmtzY2FwZTpzaG93cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9IjAiCiAgICAgaW5rc2NhcGU6ZGVza2NvbG9yPSIjZDFkMWQxIgogICAgIGlua3NjYXBlOnpvb209IjEuMTU0Mjk2OSIKICAgICBpbmtzY2FwZTpjeD0iMjU2IgogICAgIGlua3NjYXBlOmN5PSIyNTYiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxNDQwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjgzNiIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzIiPgogICAgPGlua3NjYXBlOnBhZ2UKICAgICAgIHg9IjAiCiAgICAgICB5PSIwIgogICAgICAgd2lkdGg9IjUxMiIKICAgICAgIGhlaWdodD0iNTEyIgogICAgICAgaWQ9InBhZ2UyIgogICAgICAgbWFyZ2luPSIwIgogICAgICAgYmxlZWQ9IjAiIC8+CiAgPC9zb2RpcG9kaTpuYW1lZHZpZXc+CiAgPGRlZnMKICAgICBpZD0iZGVmczIiIC8+CiAgPCEtLSBMZXR0ZXIgLS0+CiAgPGcKICAgICBpZD0iTGV0dGVyIgogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjEiPgogICAgPHBhdGgKICAgICAgIGlkPSJMZWZ0IgogICAgICAgZD0ibSAxMjMsMTQwIGMgLTIxLDAgLTM5LDE3IC00MCwzOCB2IDE5MiBjIDEsMjEgMTksMzggNDAsMzggMjEsMCAzOSwtMTcgNDAsLTM4IFYgMTc4IGMgLTEsLTIxIC0xOSwtMzggLTQwLC0zOCB6IgogICAgICAgZmlsbD0iIzFFNUFBOCIKICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9IlJpZ2h0IgogICAgICAgZD0ibSAzNDksMjg1IHYgODUgYyAxLDIxIDE5LDM4IDQwLDM4IDIxLDAgMzksLTE3IDQwLC0zOCBWIDE4MiBjIC0xMSwtMTQgLTc0LDYzIC04MCwxMDMgeiIKICAgICAgIGZpbGw9IiMwMEFGQUUiCiAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJNaWRkbGUiCiAgICAgICBkPSJtIDEyNywxMDggYyAtMzQsMCAtNDQsMjUgLTQ0LDQwIHYgNTQgYyAzMCwtMzMgNzUsMjcgODAsMzMgMjgsMzIgNDQsODcgOTMsODkgNDgsLTIgNjcsLTU2IDkzLC04OSAwLDAgNDUsLTc0IDgwLC04MCAwLC0yOCAtMTEsLTQ3IC00NCwtNDcgLTM0LDAgLTU4LDUwIC03NSw3MiAtMTcsMjIgLTI1LDQ2IC01NCw0NiAtMjksMCAtMzgsLTI1IC01NCwtNDYgLTE3LC0yMiAtNDEsLTcyIC03NSwtNzIgeiIKICAgICAgIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQyKSIKICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjEiIC8+CiAgPC9nPgo8L3N2Zz4K&style=for-the-badge)](https://morphe.software) [![Documentation badge](https://img.shields.io/badge/Documentation-gray?style=for-the-badge&logo=github)](https://github.com/MorpheApp/morphe-documentation#readme) [![Subreddit badge](https://img.shields.io/badge/Reddit-gray?style=for-the-badge&logo=reddit&logoColor=white)](https://www.reddit.com/r/MorpheApp) [![X badge](https://img.shields.io/badge/X_-gray?style=for-the-badge&logo=x)](https://x.com/MorpheApp) [![Crowdin badge](https://img.shields.io/badge/Translations-gray?style=for-the-badge&logo=crowdin)](https://morphe.software/translate)
1515
<br>
1616
</div>
1717

18-
## 🌐 Website for [Morphe.software](https://morphe.software)
18+
# 🌐 Website
19+
20+
for [Morphe.software](https://morphe.software)
1921

2022
## 📜 Licence
23+
2124
Copyright Morphe. This repository is copyrighted and _not_ licensed under open source terms.

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
"scripts": {
55
"i18n:extract": "node scripts/generate-i18n-keys.js",
66
"i18n:check": "node scripts/check-translations.js",
7-
"precommit": "npm run i18n:extract && npm run i18n:check"
7+
"precommit": "npm run i18n:extract && npm run i18n:check",
8+
"changelog:generate": "node scripts/generate-changelog.js"
89
},
910
"devDependencies": {
1011
"glob": "^10.5.0"

public/changelog.html

Lines changed: 202 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<meta name="description" content="Morphe What's New - Latest updates for Manager and Patches">
7+
<title>What's New - Morphe</title>
8+
<script>
9+
(function () {
10+
try {
11+
const theme = localStorage.getItem('morphe-theme') || 'auto';
12+
const systemDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
13+
const actual = theme === 'auto' ? (systemDark ? 'dark' : 'light') : theme;
14+
document.documentElement.setAttribute('data-theme', actual);
15+
} catch (e) {}
16+
})();
17+
</script>
18+
<link rel="stylesheet" href="/css/styles.css">
19+
<link rel="stylesheet" href="/css/dark-theme.css">
20+
<link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96"/>
21+
<link rel="icon" type="image/svg+xml" href="/favicon.svg"/>
22+
<link rel="icon" href="/favicon.ico"/>
23+
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"/>
24+
<meta name="apple-mobile-web-app-title" content="Morphe"/>
25+
<link rel="manifest" href="/site.webmanifest"/>
26+
<script src="/js/analytics.js"></script>
27+
</head>
28+
<body>
29+
30+
<!-- Navigation -->
31+
<nav class="navbar">
32+
<div class="nav-container">
33+
<a href="/" class="nav-logo">
34+
<img src="/images/morphe_wordmark_light.svg" alt="Morphe" class="nav-logo-wordmark logo-light">
35+
<img src="/images/morphe_wordmark_dark.svg" alt="Morphe" class="nav-logo-wordmark logo-dark">
36+
</a>
37+
<div class="nav-links">
38+
<a href="/" class="nav-link" data-i18n="nav.home" data-umami-event="Nav Home Click">Home</a>
39+
<a href="/#how-it-works" class="nav-link" data-i18n="nav.how-it-works" data-umami-event="Nav How It Works Click">How It Works</a>
40+
<a href="/#testimonials" class="nav-link" data-i18n="nav.testimonials" data-umami-event="Nav Testimonials Click">Testimonials</a>
41+
<a href="/#faq" class="nav-link" data-i18n="nav.faq" data-umami-event="Nav FAQ Click">FAQ</a>
42+
<a href="/donate" class="nav-link" data-i18n="nav.donate" data-umami-event="Nav Donate Click">Donate</a>
43+
<a href="/changelog" class="nav-link" data-i18n="nav.changelogs" data-umami-event="Nav What's New Click">What's New</a>
44+
</div>
45+
<div class="nav-actions">
46+
<button id="theme-toggle" class="theme-toggle" aria-label="Toggle theme" data-umami-event="Theme Toggle Click">
47+
<!-- Sun Icon (Light Mode) -->
48+
<svg id="theme-icon-sun" class="theme-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
49+
<circle cx="12" cy="12" r="5"></circle>
50+
<line x1="12" y1="1" x2="12" y2="3"></line>
51+
<line x1="12" y1="21" x2="12" y2="23"></line>
52+
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
53+
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
54+
<line x1="1" y1="12" x2="3" y2="12"></line>
55+
<line x1="21" y1="12" x2="23" y2="12"></line>
56+
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
57+
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
58+
</svg>
59+
<!-- Moon Icon (Dark Mode) -->
60+
<svg id="theme-icon-moon" class="theme-icon hidden" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
61+
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
62+
</svg>
63+
</button>
64+
<button class="mobile-menu-toggle" aria-label="Toggle menu" data-umami-event="Mobile Menu Toggle">
65+
<span></span>
66+
<span></span>
67+
<span></span>
68+
</button>
69+
</div>
70+
</div>
71+
</nav>
72+
73+
<!-- Changelog Page -->
74+
<section class="changelog">
75+
<div class="container">
76+
<div class="section-header">
77+
<h1 class="section-title" data-i18n="changelog.title">What's New</h1>
78+
<p class="section-subtitle" data-i18n="changelog.subtitle">Complete history of updates and improvements</p>
79+
</div>
80+
81+
<!-- Filters -->
82+
<div class="changelog-filters">
83+
<div class="filter-group">
84+
<label class="filter-label" data-i18n="changelog.filter-type">Type:</label>
85+
<div class="filter-buttons">
86+
<button class="filter-btn active" data-filter="all" data-umami-event="Changelog Filter All">
87+
<span data-i18n="changelog.filter-all">All</span>
88+
</button>
89+
<button class="filter-btn" data-filter="manager" data-umami-event="Changelog Filter Manager">
90+
<span data-i18n="changelog.filter-manager">Manager</span>
91+
</button>
92+
<button class="filter-btn" data-filter="patches" data-umami-event="Changelog Filter Patches">
93+
<span data-i18n="changelog.filter-patches">Patches</span>
94+
</button>
95+
</div>
96+
</div>
97+
98+
<div class="filter-group">
99+
<label class="filter-toggle">
100+
<input type="checkbox" id="show-dev" data-umami-event="Changelog Toggle Dev">
101+
<span class="toggle-slider"></span>
102+
<span class="toggle-label" data-i18n="changelog.show-dev">Show pre-releases</span>
103+
</label>
104+
</div>
105+
</div>
106+
107+
<!-- Changelog Content (will be generated by GitHub Action) -->
108+
<div id="changelog-content" class="changelog-grid">
109+
<!-- Generated content goes here -->
110+
{{CHANGELOG_CONTENT}}
111+
</div>
112+
113+
<!-- Show More Button -->
114+
<div class="show-more-section">
115+
<p class="show-more-text" data-i18n="changelog.older-releases">Looking for older releases?</p>
116+
<div class="show-more-buttons">
117+
<a href="https://github.com/MorpheApp/morphe-manager/releases"
118+
target="_blank"
119+
class="btn btn-secondary"
120+
data-umami-event="Changelog Show More Manager">
121+
<span data-i18n="changelog.view-manager">View Manager Releases</span>
122+
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
123+
<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path>
124+
<polyline points="15 3 21 3 21 9"></polyline>
125+
<line x1="10" y1="14" x2="21" y2="3"></line>
126+
</svg>
127+
</a>
128+
<a href="https://github.com/MorpheApp/morphe-patches/releases"
129+
target="_blank"
130+
class="btn btn-secondary"
131+
data-umami-event="Changelog Show More Patches">
132+
<span data-i18n="changelog.view-patches">View Patches Releases</span>
133+
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
134+
<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path>
135+
<polyline points="15 3 21 3 21 9"></polyline>
136+
<line x1="10" y1="14" x2="21" y2="3"></line>
137+
</svg>
138+
</a>
139+
</div>
140+
</div>
141+
</div>
142+
</section>
143+
144+
<!-- Footer -->
145+
<footer class="footer">
146+
<div class="container">
147+
<div class="footer-content">
148+
<div class="footer-brand">
149+
<img src="/images/morphe_logo_with_frame.svg" alt="Morphe" class="footer-logo">
150+
<p data-i18n="footer.description">Next generation Android app patching</p>
151+
</div>
152+
<div class="footer-links">
153+
<div class="footer-column">
154+
<h4 data-i18n="footer.product">Product</h4>
155+
<a href="/" data-i18n="footer.product-home" data-umami-event="Footer Home Click">Home</a>
156+
<a href="/changelog" data-i18n="footer.product-changelog" data-umami-event="Footer What's New Click">What's New</a>
157+
<a href="/microg" data-i18n="footer.product-microg" data-umami-event="Footer MicroG Click">Download MicroG</a>
158+
<a href="/translate" data-i18n="footer.product-translate" data-umami-event="Footer Translate Click">Help translate</a>
159+
</div>
160+
<div class="footer-column">
161+
<h4 data-i18n="footer.community">Community</h4>
162+
<a href="https://github.com/MorpheApp" target="_blank" data-umami-event="Footer GitHub Click">GitHub</a>
163+
<a href="https://x.com/MorpheApp" target="_blank" data-umami-event="Footer X Click">X (Twitter)</a>
164+
<a href="https://reddit.com/r/MorpheApp" target="_blank" data-umami-event="Footer Reddit Click">Reddit</a>
165+
<a href="https://crowdin.com/project/morphe" target="_blank" data-umami-event="Footer Crowdin Click">Crowdin</a>
166+
</div>
167+
<div class="footer-column">
168+
<h4 data-i18n="footer.support">Support</h4>
169+
<a href="/#faq" data-i18n="footer.support-faq" data-umami-event="Footer FAQ Click">FAQ</a>
170+
<a href="/#how-it-works" data-i18n="footer.support-how" data-umami-event="Footer How Morphe Works Click">How Morphe Works</a>
171+
<a href="/donate/" data-i18n="footer.support-donate" data-umami-event="Footer Donate Click">Donate</a>
172+
<a href="https://www.dmca.com/Protection/Status.aspx?ID=58df7b1f-ce9f-4a91-9b07-c79cf576230b" title="DMCA.com Protection Status" class="dmca-badge" data-umami-event="DMCA Click">
173+
<img src ="https://images.dmca.com/Badges/dmca_protected_sml_120n.png?ID=58df7b1f-ce9f-4a91-9b07-c79cf576230b" alt="DMCA.com Protection Status" />
174+
</a><script src="https://images.dmca.com/Badges/DMCABadgeHelper.min.js"></script>
175+
</div>
176+
<div class="footer-column language-selector-container">
177+
<h4 data-i18n="footer.language">Language</h4>
178+
<select id="language-selector" class="language-selector" data-umami-event="Language Change">
179+
<!-- Options will be populated dynamically by i18n.js -->
180+
</select>
181+
</div>
182+
</div>
183+
</div>
184+
<div class="footer-bottom">
185+
<p>&copy; Morphe. <span data-i18n="footer.copyright">Open source and free forever.</span></p>
186+
</div>
187+
</div>
188+
</footer>
189+
190+
<!-- Scroll to Top Button -->
191+
<button id="scroll-to-top" class="scroll-to-top" aria-label="Scroll to top" data-umami-event="Scroll to Top Click">
192+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
193+
<polyline points="18 15 12 9 6 15"></polyline>
194+
</svg>
195+
</button>
196+
197+
<script src="/js/theme-manager.js"></script>
198+
<script src="/js/i18n.js"></script>
199+
<script src="/js/changelog.js"></script>
200+
<script src="/js/main.js"></script>
201+
</body>
202+
</html>

public/css/dark-theme.css

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,54 @@
122122
color: var(--primary-blue);
123123
}
124124

125+
/* Changelogs */
126+
[data-theme="dark"] .changelog {
127+
background: var(--gray-100);
128+
}
129+
130+
[data-theme="dark"] .changelog-filters {
131+
background: var(--surface);
132+
}
133+
134+
[data-theme="dark"] .filter-buttons {
135+
background: var(--gray-200);
136+
}
137+
138+
[data-theme="dark"] .filter-btn.active {
139+
background: var(--gray-100);
140+
}
141+
142+
[data-theme="dark"] .toggle-slider {
143+
background: var(--gray-600);
144+
}
145+
146+
[data-theme="dark"] .version-card {
147+
background: var(--surface);
148+
border-color: var(--border);
149+
}
150+
151+
[data-theme="dark"] .version-card[data-type="manager"] {
152+
border-left-color: #1E5AA8;
153+
}
154+
155+
[data-theme="dark"] .version-card[data-type="patches"] {
156+
border-left-color: #00AFAE;
157+
}
158+
159+
[data-theme="dark"] .version-header {
160+
border-bottom-color: var(--border);
161+
}
162+
163+
[data-theme="dark"] .change-list li code {
164+
background: var(--gray-200);
165+
color: var(--primary-teal);
166+
}
167+
168+
[data-theme="dark"] .show-more-section {
169+
background: var(--surface);
170+
border-color: var(--border);
171+
}
172+
125173
/* Footer */
126174
[data-theme="dark"] .footer {
127175
background: var(--gray-50);
@@ -155,6 +203,20 @@
155203
filter: none;
156204
}
157205

206+
/* Scroll to Top Button */
207+
[data-theme="dark"] .scroll-to-top {
208+
background: var(--gradient-primary);
209+
box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.4), 0 4px 6px -2px rgba(0, 0, 0, 0.3);
210+
}
211+
212+
[data-theme="dark"] .scroll-to-top:hover {
213+
box-shadow: 0 20px 35px -5px rgba(0, 0, 0, 0.5), 0 10px 10px -5px rgba(0, 0, 0, 0.4);
214+
}
215+
216+
[data-theme="dark"] .scroll-to-top svg {
217+
color: white;
218+
}
219+
158220
/* Smooth transitions */
159221
body,
160222
.navbar,

0 commit comments

Comments
 (0)