mirror of
https://github.com/revanced/revanced-website.git
synced 2025-04-29 22:24:31 +02:00
chore: merge branch dev
to main
(#127)
This commit is contained in:
commit
5dab8357bf
@ -10,7 +10,14 @@
|
|||||||
<body>
|
<body>
|
||||||
<div>%sveltekit.body%</div>
|
<div>%sveltekit.body%</div>
|
||||||
</body>
|
</body>
|
||||||
|
<!-- Google Tag Manager (noscript) -->
|
||||||
|
<!-- TODO: Is this allowed to be present, even when consent to collect data is not given? -->
|
||||||
<noscript>
|
<noscript>
|
||||||
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MQ6K849" height="0" width="0" style="display:none;visibility:hidden"></iframe>
|
<iframe
|
||||||
|
src="https://www.googletagmanager.com/ns.html?id=GTM-MQ6K849"
|
||||||
|
height="0"
|
||||||
|
width="0"
|
||||||
|
style="display: none; visibility: hidden"
|
||||||
|
></iframe>
|
||||||
</noscript>
|
</noscript>
|
||||||
</html>
|
</html>
|
||||||
|
@ -155,9 +155,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
a:hover {
|
a:hover {
|
||||||
text-decoration: underline;
|
text-decoration: underline var(--accent-color-two);
|
||||||
text-decoration-style: wavy;
|
|
||||||
text-decoration-color: var(--accent-color-two);
|
|
||||||
color: var(--white);
|
color: var(--white);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -134,6 +134,10 @@
|
|||||||
</Modal>
|
</Modal>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
#logo {
|
||||||
|
padding: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
path {
|
path {
|
||||||
fill: var(--grey-five);
|
fill: var(--grey-five);
|
||||||
}
|
}
|
||||||
|
@ -47,9 +47,9 @@
|
|||||||
<slot name="icon" />
|
<slot name="icon" />
|
||||||
{/if}
|
{/if}
|
||||||
{#if $$slots.title}
|
{#if $$slots.title}
|
||||||
<h4>
|
<h3>
|
||||||
<slot name="title" />
|
<slot name="title" />
|
||||||
</h4>
|
</h3>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -85,7 +85,7 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-bottom: 0.75rem;
|
gap: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
@ -94,13 +94,11 @@
|
|||||||
gap: 1rem;
|
gap: 1rem;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background-color: var(--grey-six);
|
background-color: var(--grey-six);
|
||||||
margin-bottom: 8px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.buttons {
|
.buttons {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 2rem;
|
gap: 2rem;
|
||||||
margin-top: 1rem;
|
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
@ -134,6 +132,8 @@
|
|||||||
padding: 32px;
|
padding: 32px;
|
||||||
box-shadow: 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12),
|
box-shadow: 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12),
|
||||||
0px 2px 4px -1px rgba(0, 0, 0, 0.2);
|
0px 2px 4px -1px rgba(0, 0, 0, 0.2);
|
||||||
|
scrollbar-width: none;
|
||||||
|
-ms-overflow-style: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
button {
|
button {
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<style>
|
<style lang="scss">
|
||||||
#search {
|
#search {
|
||||||
/* umm dont ask */
|
/* umm dont ask */
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@ -73,6 +73,19 @@
|
|||||||
border-radius: 100px;
|
border-radius: 100px;
|
||||||
border: none;
|
border: none;
|
||||||
background-color: var(--grey-ten);
|
background-color: var(--grey-ten);
|
||||||
|
outline: none;
|
||||||
|
|
||||||
|
transition: background-color 0.3s var(--bezier-one);
|
||||||
|
&:hover {
|
||||||
|
background-color: var(--grey-three);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:focus::placeholder {
|
||||||
|
color: var(--accent-color);
|
||||||
|
}
|
||||||
|
&:focus {
|
||||||
|
background-color: var(--bg-color);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
input::placeholder {
|
input::placeholder {
|
||||||
@ -81,13 +94,4 @@
|
|||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
transition: all 0.2s var(--bezier-one);
|
transition: all 0.2s var(--bezier-one);
|
||||||
}
|
}
|
||||||
|
|
||||||
input:focus {
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
input:focus::placeholder {
|
|
||||||
outline: none;
|
|
||||||
color: var(--accent-color);
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
import { writable } from 'svelte/store';
|
import { writable } from 'svelte/store';
|
||||||
// There might be a better place to put this, but I am not entirely sure...
|
// There might be a better place to put this, but I am not entirely sure...
|
||||||
export const isRestoring = writable(false);
|
export const isRestoring = writable(false);
|
||||||
declare const telemetryInit: () => void;
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
@ -33,21 +32,20 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
let askCookieConsent = false;
|
let showConsentModal = false;
|
||||||
|
|
||||||
// store a cookie to remember the user's preference
|
function rememberChoice(allow: boolean) {
|
||||||
function setPrivacySetting(allowTelemetry: boolean) {
|
localStorage.setItem('analytics', allow.toString());
|
||||||
localStorage.setItem('allowTelemetry', allowTelemetry.toString());
|
showConsentModal = false;
|
||||||
askCookieConsent = false;
|
|
||||||
if (typeof telemetryInit !== 'undefined') {
|
if (allow) location.reload();
|
||||||
telemetryInit();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onMount(() => {
|
onMount(() => {
|
||||||
if (!localStorage.getItem('allowTelemetry')) {
|
// Check if the user has already decided.
|
||||||
askCookieConsent = true;
|
|
||||||
}
|
const hasDecided = localStorage.getItem('analytics') !== null;
|
||||||
|
if (!hasDecided) showConsentModal = true;
|
||||||
|
|
||||||
isRestoring.set(true);
|
isRestoring.set(true);
|
||||||
const [unsubscribe, promise] = persistQueryClient({
|
const [unsubscribe, promise] = persistQueryClient({
|
||||||
@ -74,9 +72,11 @@
|
|||||||
);
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- telemetry good -->
|
|
||||||
<svelte:head>
|
<svelte:head>
|
||||||
|
<!-- Google Tag Manager -->
|
||||||
<script>
|
<script>
|
||||||
|
allowAnalytics = localStorage.getItem('analytics') === 'true';
|
||||||
|
if (allowAnalytics) {
|
||||||
(function (w, d, s, l, i) {
|
(function (w, d, s, l, i) {
|
||||||
w[l] = w[l] || [];
|
w[l] = w[l] || [];
|
||||||
w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });
|
w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });
|
||||||
@ -87,56 +87,21 @@
|
|||||||
j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
|
j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
|
||||||
f.parentNode.insertBefore(j, f);
|
f.parentNode.insertBefore(j, f);
|
||||||
})(window, document, 'script', 'dataLayer', 'GTM-MQ6K849');
|
})(window, document, 'script', 'dataLayer', 'GTM-MQ6K849');
|
||||||
</script>
|
|
||||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-PLH0N9VQL5"></script>
|
|
||||||
<!-- Sometimes you don't want telemetry -->
|
|
||||||
<script>
|
|
||||||
window.dataLayer = window.dataLayer || [];
|
|
||||||
|
|
||||||
function gtag() {
|
|
||||||
dataLayer.push(arguments);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function runClarity(c, l, a, r, i, t, y) {
|
|
||||||
c[a] =
|
|
||||||
c[a] ||
|
|
||||||
function () {
|
|
||||||
(c[a].q = c[a].q || []).push(arguments);
|
|
||||||
};
|
|
||||||
t = l.createElement(r);
|
|
||||||
t.async = 1;
|
|
||||||
t.src = 'https://www.clarity.ms/tag/' + i;
|
|
||||||
y = l.getElementsByTagName(r)[0];
|
|
||||||
y.parentNode.insertBefore(t, y);
|
|
||||||
}
|
|
||||||
|
|
||||||
function telemetryInit() {
|
|
||||||
allowTelemetry = (localStorage.getItem('allowTelemetry') === 'true');
|
|
||||||
if (!allowTelemetry) {
|
|
||||||
gtag('set', 'allow_google_signals', false);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
gtag('js', new Date());
|
|
||||||
gtag('config', 'G-PLH0N9VQL5');
|
|
||||||
runClarity(window, document, 'clarity', 'script', 'hfh8dhfgus');
|
|
||||||
}
|
|
||||||
|
|
||||||
telemetryInit();
|
|
||||||
</script>
|
</script>
|
||||||
</svelte:head>
|
</svelte:head>
|
||||||
|
|
||||||
<QueryClientProvider client={queryClient}>
|
<QueryClientProvider client={queryClient}>
|
||||||
<NavHost />
|
<NavHost />
|
||||||
<!-- if cookie consent hasn't been set -->
|
<Dialogue bind:modalOpen={showConsentModal} notDismissible>
|
||||||
<Dialogue bind:modalOpen={askCookieConsent} notDismissible>
|
|
||||||
<svelte:fragment slot="title">It's your choice</svelte:fragment>
|
<svelte:fragment slot="title">It's your choice</svelte:fragment>
|
||||||
<svelte:fragment slot="description">
|
<svelte:fragment slot="description">
|
||||||
This site uses analytics to understand better how you use it. Opting in is
|
We use analytics to improve your experience on this site. By clicking "Allow", you allow us to
|
||||||
optional and won't impact your experience.
|
collect anonymous data about your visit.
|
||||||
</svelte:fragment>
|
</svelte:fragment>
|
||||||
<svelte:fragment slot="buttons">
|
<svelte:fragment slot="buttons">
|
||||||
<Button type="text" on:click={() => setPrivacySetting(false)}>Deny</Button>
|
<Button type="text" on:click={() => rememberChoice(false)}>Deny</Button>
|
||||||
<Button type="text" on:click={() => setPrivacySetting(true)}>Accept</Button>
|
<Button type="filled" on:click={() => rememberChoice(true)}>Allow</Button>
|
||||||
</svelte:fragment>
|
</svelte:fragment>
|
||||||
</Dialogue>
|
</Dialogue>
|
||||||
|
|
||||||
@ -145,6 +110,5 @@
|
|||||||
{:else}
|
{:else}
|
||||||
<slot />
|
<slot />
|
||||||
{/if}
|
{/if}
|
||||||
<!-- guhh afn -->
|
|
||||||
<!-- <Footer> -->
|
<!-- <Footer> -->
|
||||||
</QueryClientProvider>
|
</QueryClientProvider>
|
||||||
|
@ -83,9 +83,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
a:hover {
|
a:hover {
|
||||||
text-decoration: underline;
|
text-decoration: underline var(--grey-four);
|
||||||
text-decoration-style: wavy;
|
|
||||||
text-decoration-color: var(--grey-four);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
a:hover::after {
|
a:hover::after {
|
||||||
|
@ -26,9 +26,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
a:hover {
|
a:hover {
|
||||||
text-decoration: underline;
|
background: var(--grey-one);
|
||||||
text-decoration-style: wavy;
|
text-decoration: underline var(--accent-color);
|
||||||
text-decoration-color: var(--accent-color);
|
|
||||||
color: var(--white);
|
color: var(--white);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@
|
|||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<style>
|
<style lang="scss">
|
||||||
.title {
|
.title {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@ -53,6 +53,10 @@
|
|||||||
padding: 0.75rem 1.25rem;
|
padding: 0.75rem 1.25rem;
|
||||||
border-bottom: 1px solid var(--grey-three);
|
border-bottom: 1px solid var(--grey-three);
|
||||||
transition: all 0.2s var(--bezier-one);
|
transition: all 0.2s var(--bezier-one);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: var(--grey-one);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.closed {
|
.closed {
|
||||||
@ -79,9 +83,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
a:hover {
|
a:hover {
|
||||||
text-decoration: underline;
|
text-decoration: underline var(--accent-color);
|
||||||
text-decoration-style: wavy;
|
|
||||||
text-decoration-color: var(--accent-color);
|
|
||||||
color: var(--white);
|
color: var(--white);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@
|
|||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<style>
|
<style lang="scss">
|
||||||
h3 {
|
h3 {
|
||||||
margin-right: 0.5rem;
|
margin-right: 0.5rem;
|
||||||
margin-bottom: 0.2rem;
|
margin-bottom: 0.2rem;
|
||||||
@ -92,10 +92,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
a .patch-info:hover {
|
a .patch-info:hover {
|
||||||
text-decoration: underline;
|
text-decoration: underline var(--accent-color-two);
|
||||||
color: var(--accent-color-two);
|
color: var(--accent-color-two);
|
||||||
text-decoration-style: wavy;
|
|
||||||
text-decoration-color: var(--accent-color-two);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.info-container {
|
.info-container {
|
||||||
@ -108,14 +106,18 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.patch-container {
|
.patch-container {
|
||||||
transition: all 2s var(--bezier-one);
|
transition: all 0.1s var(--bezier-one);
|
||||||
background-color: var(--grey-six);
|
background-color: var(--grey-six);
|
||||||
padding: 1.25rem;
|
padding: 1.25rem;
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
|
|
||||||
|
&:active {
|
||||||
|
filter: brightness(1.15);
|
||||||
}
|
}
|
||||||
|
|
||||||
.patch-container:active {
|
&:hover {
|
||||||
filter: brightness(1.75);
|
background-color: var(--grey-one);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user