-
Notifications
You must be signed in to change notification settings - Fork 61
Expand file tree
/
Copy pathindex.html
More file actions
163 lines (155 loc) · 4.94 KB
/
index.html
File metadata and controls
163 lines (155 loc) · 4.94 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
<!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="#ffffff" />
<!-- Title -->
<title>Build Better Sites | Ship and Stabilize Web Products Faster</title>
<!-- Meta Description -->
<meta
name="description"
content="I help startups and small teams ship MVPs faster and fix fragile frontend and backend systems. Short-term engagements focused on speed, stability, and real users."
/>
<!-- SEO -->
<meta name="robots" content="index, follow" />
<link rel="canonical" href="https://buildbettersites.com/" />
<!-- Open Graph (LinkedIn, Facebook) -->
<meta property="og:type" content="website" />
<meta property="og:title" content="Build Better Sites" />
<meta
property="og:description"
content="Ship MVPs faster and turn fragile web apps into stable, scalable products."
/>
<meta property="og:url" content="https://buildbettersites.com/" />
<meta
property="og:image"
content="https://buildbettersites.com/card-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="Build Better Sites" />
<meta
name="twitter:description"
content="Short-term frontend and backend work to ship and stabilize real web products."
/>
<meta
name="twitter:image"
content="https://buildbettersites.com/card-image.png"
/>
<!-- Favicon -->
<link
rel="icon"
type="image/png"
href="https://buildbettersites.com/favicon.png"
/>
<!-- Preconnect -->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
</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>