Implemented phase 0 for the POC prototype in the Website service.

This commit is contained in:
javier committed 2026-09-21 10:22:55 +02:00
1 parent 916df7e2f0
commit 717df5208c
31 files changed
+2351 -240

No files matched your search

@@ -11,9 +11,9 @@ extension Page {
/// The fonts preloaded on every page: one per face the stylesheets actually render.
///
/// Listed rather than derived from every WOFF2 in ``StaticFile/all``: a subset gated by a `unicode-range` no page reaches would add a
/// download that never otherwise happens. Empty until the site ships fonts of its own.
/// download that never otherwise happens. All three faces render on every page.
static var preloadedFonts: [StaticFile] {
[]
[.fontArchivo, .fontOswald, .fontAnton]
}
/// The territories paired with the site's languages, in Open Graph's `language_TERRITORY` form.
@@ -147,11 +147,11 @@ extension Page {
)
meta(
.name("theme-color"),
.content("#fafafa")
.content("#191713")
)
meta(
.name("theme-color"),
.content("#0c0710"),
.content("#0f0e0b"),
.custom(
name: "media",
value: "(prefers-color-scheme: dark)"
@@ -0,0 +1,39 @@
extension String {
/// A namespace for the paths of the site's screens.
///
/// Screens not built yet are listed too, and answer with the not-found page until they are.
enum Route {
/// The account screen.
static let account = "/account"
/// The collection tracker.
static let collection = "/collection"
/// The events screen.
static let events = "/events"
/// The public grading guide.
static let gradingGuide = "/grading-guide"
/// The browse / home screen.
static let home = "/"
/// The message threads.
static let messages = "/messages"
/// The open-a-shop onboarding.
static let openShop = "/sell/open-a-shop"
/// The privacy statement.
static let privacy = "/privacy"
/// The passkey recovery screen.
static let recover = "/recover"
/// The search results screen.
static let search = "/search"
/// The seller dashboard.
static let sellerDashboard = "/sell"
/// The rules sellers agree to.
static let sellerRules = "/seller-rules"
/// The series index.
static let series = "/series"
/// The passkey sign-in screen.
static let signIn = "/sign-in"
/// The terms of service.
static let terms = "/terms"
/// The want list.
static let wants = "/wants"
}
}