-
Notifications
You must be signed in to change notification settings - Fork 139
Expand file tree
/
Copy pathindex.html
More file actions
168 lines (159 loc) · 5.48 KB
/
Copy pathindex.html
File metadata and controls
168 lines (159 loc) · 5.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<!doctype html>
<html lang="en">
<head>
<!-- Basic -->
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="theme-color" content="#04090f" />
<!-- Title -->
<title>Access Layer | Creator Keys Marketplace on Stellar</title>
<!-- Meta Description -->
<meta
name="description"
content="AccessLayer is an open source marketplace on the Stellar blockchain where fans can buy and sell keys tied to their favorite creators."
/>
<!-- SEO -->
<meta name="robots" content="index, follow" />
<link rel="canonical" href="https://accesslayer.xyz/" />
<!-- Open Graph (LinkedIn, Facebook) -->
<meta property="og:type" content="website" />
<meta property="og:title" content="Access Layer | Creator Keys Marketplace on Stellar" />
<meta
property="og:description"
content="An open source marketplace on the Stellar blockchain where fans can buy and sell keys tied to their favorite creators."
/>
<meta property="og:url" content="https://accesslayer.xyz/" />
<meta property="og:image" content="https://accesslayer.xyz/images/og-image.png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<!-- Twitter -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Access Layer | Creator Keys Marketplace on Stellar" />
<meta
name="twitter:description"
content="An open source marketplace on the Stellar blockchain where fans can buy and sell keys tied to their favorite creators."
/>
<meta name="twitter:image" content="https://accesslayer.xyz/images/og-image.png" />
<!-- Favicon -->
<link rel="icon" type="image/svg+xml" href="/icons/logo.svg" />
<!-- Preconnect -->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<!--
#750: Applies the stored theme class to <html> before the first
paint so there is no flash of the wrong theme on load.
Reads localStorage['theme']; falls back to prefers-color-scheme.
-->
<script>
(function () {
var stored = localStorage.getItem('theme');
var prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
if (stored === 'dark' || (!stored && prefersDark)) {
document.documentElement.classList.add('dark');
}
})();
</script>
</head>
<body>
<!--
#299: No-script fallback for key UI actions. The marketplace is a
client-rendered SPA (Vite), so without JavaScript the `#root`
container stays empty and every interactive surface — search,
filters, buy/sell, wallet connect, profile pattern — is
unavailable. This block is the one place a real user with JS
disabled can see explanatory copy; the same noscript element
covers the whole interactive area in a single place rather than
being sprinkled per-action across React components (which would
never mount without JS anyway).
Styling is inlined so it works even if external CSS is not
fetched, and the tone matches the rest of the app.
-->
<noscript>
<style>
.noscript-fallback {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
padding: 2rem 1.5rem;
background: linear-gradient(
160deg,
#08111f 0%,
#10213b 45%,
#f0b14d 160%
);
color: #ffffff;
font-family:
-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
sans-serif;
}
.noscript-fallback__card {
max-width: 36rem;
padding: 2rem;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 1.5rem;
background: rgba(8, 17, 31, 0.75);
backdrop-filter: blur(8px);
text-align: center;
}
.noscript-fallback__eyebrow {
font-size: 0.75rem;
font-weight: 700;
letter-spacing: 0.25em;
text-transform: uppercase;
color: rgba(251, 191, 36, 0.85);
margin-bottom: 0.5rem;
}
.noscript-fallback__title {
font-size: clamp(1.5rem, 4vw, 2.25rem);
font-weight: 900;
letter-spacing: -0.02em;
margin: 0.5rem 0 1rem 0;
}
.noscript-fallback__body {
font-size: 1rem;
line-height: 1.5;
color: rgba(255, 255, 255, 0.7);
margin: 0 0 1.25rem 0;
}
.noscript-fallback__list {
text-align: left;
padding-left: 1.25rem;
margin: 0 0 1.25rem 0;
color: rgba(255, 255, 255, 0.75);
font-size: 0.9rem;
line-height: 1.6;
}
.noscript-fallback__footer {
font-size: 0.85rem;
color: rgba(255, 255, 255, 0.55);
margin: 0;
}
</style>
<div class="noscript-fallback" role="alert">
<div class="noscript-fallback__card">
<p class="noscript-fallback__eyebrow">JavaScript required</p>
<h1 class="noscript-fallback__title">
This marketplace needs JavaScript to run
</h1>
<p class="noscript-fallback__body">
Access Layer is an interactive client-rendered app. The
key actions on this page rely on JavaScript:
</p>
<ul class="noscript-fallback__list">
<li>Browsing and searching creator profiles</li>
<li>Connecting a Stellar wallet</li>
<li>Buying or selling creator keys</li>
<li>Viewing live prices and transaction status</li>
</ul>
<p class="noscript-fallback__footer">
Please enable JavaScript in your browser settings and
refresh the page to continue.
</p>
</div>
</div>
</noscript>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>