diff --git a/site/_headers b/site/_headers index ad3df7a..d92a6ba 100644 --- a/site/_headers +++ b/site/_headers @@ -1,5 +1,6 @@ +# Cloudflare Web Analytics, which Pages adds to the page, is the one script it runs (#216). /* - Content-Security-Policy: default-src 'none'; img-src 'self'; style-src 'self'; font-src 'self'; base-uri 'none'; form-action 'none'; frame-ancestors 'none' + Content-Security-Policy: default-src 'none'; img-src 'self'; style-src 'self'; font-src 'self'; script-src https://static.cloudflareinsights.com; connect-src 'self' https://cloudflareinsights.com; base-uri 'none'; form-action 'none'; frame-ancestors 'none' X-Content-Type-Options: nosniff Referrer-Policy: strict-origin-when-cross-origin /fonts/* diff --git a/site/index.html b/site/index.html index 9c8f761..ae2ab72 100644 --- a/site/index.html +++ b/site/index.html @@ -54,16 +54,26 @@
Some of what people listen to and read on iPX servers today.
+
-

In the browser, and on your phone

-
- In the browser +

Everyone signs in to a list of their own: feeds down the side, episodes in a table with each one's notes below, and the player along the bottom, as iPodderX laid them out.

+
+ iPX in a desktop browser: the feed list down the side, 99% Invisible's episodes in a table, the newest one's notes below it, and the player along the bottom. - iPX on a phone: Ologies with Alie Ward and its latest episodes.
+
+ iPX on a phone: Ologies with Alie Ward and its latest episodes. +
+

On your phone

+

Add it to your home screen and it opens like an app, with the same lists and the same place in each episode as on your computer.

+
+
+

What it does

@@ -79,8 +89,8 @@
Turn it on for a show and iPX plays it without its long silences, leaving the pause you choose. The original file stays as it is.
A shared directory
iPX servers can share the public shows their people follow. Browse it to find something new, and subscribe in one click from your own server.
-
On your phone
-
Add it to your home screen and it opens like an app, with the same lists and the same place in each episode.
+
Sign in your way
+
Each person signs in with a password, or Cloudflare Access or Authentik signs them in for you. An admin adds people and decides who else is one.
Blogs too
Any RSS or Atom feed works, so the blogs you read sit beside the shows you listen to, each with its own read and unread.
diff --git a/site/shots/desktop.webp b/site/shots/desktop.webp index e3058c5..e8c6dbb 100644 Binary files a/site/shots/desktop.webp and b/site/shots/desktop.webp differ diff --git a/site/site.css b/site/site.css index 79ceee6..bdde2d9 100644 --- a/site/site.css +++ b/site/site.css @@ -62,12 +62,16 @@ h1{margin:0;color:var(--navy);font-weight:900;font-size:clamp(6.5rem,24vw,15rem) @media (prefers-reduced-motion:reduce){.needle,.stations .tuned{animation-duration:0s;animation-delay:0s}} figcaption{margin:.7rem 0 0;color:var(--muted);font-size:.9rem} -/* The app as it looks: the desktop window, and the phone over its corner. */ +/* The app as it looks. The window in a navy panel, the dial's material, rising out of its bottom + edge; the phone in a row of its own beside what it shows, not over the window's corner. */ .shots{padding-block:4.5rem 0} -.screens{position:relative;margin:0 0 3rem;padding-right:clamp(0px,12%,9rem)} -.screens img{display:block;height:auto} -.desk{width:100%;border-radius:.9rem;border:1px solid var(--rule);box-shadow:0 1.5rem 3rem -1.5rem rgba(12,34,56,.45)} -.phone{position:absolute;right:0;bottom:-3rem;width:24%;max-width:15rem;border-radius:1.6rem;border:.4rem solid var(--navy);box-shadow:0 1.5rem 3rem -1rem rgba(12,34,56,.5)} +.shotlede{max-width:40rem;margin:-.5rem 0 1.75rem} +.window{margin:0;padding:clamp(1rem,3.2vw,2.5rem) clamp(1rem,3.2vw,2.5rem) 0;background:var(--navy);border-radius:1.25rem;overflow:hidden} +.window img{display:block;width:100%;height:auto;border-radius:.6rem .6rem 0 0;box-shadow:0 0 0 1px rgba(143,194,234,.22)} +.pocket{display:grid;grid-template-columns:minmax(0,14rem) minmax(0,1fr);gap:clamp(2rem,7vw,5.5rem);align-items:center;padding-block:4rem 0} +.pocket img{display:block;width:100%;height:auto;border-radius:1.9rem;border:.45rem solid var(--navy)} +.pocket h2{margin-bottom:.75rem} +.pocket p{margin:0;max-width:28rem;font-size:1.125rem} h2{margin:0 0 1.5rem;color:var(--navy);font-weight:800;font-size:clamp(1.75rem,4vw,2.4rem);line-height:1.1;letter-spacing:-.02em} .does,.then{padding-block:4rem 0} @@ -85,8 +89,11 @@ footer p{margin:0} .bar nav{gap:1rem} .hero{padding-block:1.5rem 2rem} .does dl{grid-template-columns:minmax(0,1fr);gap:1.75rem} - .screens{padding-right:0;margin-bottom:0} - .phone{position:static;width:62%;margin:1.5rem auto 0} + .window{margin-inline:-1rem;border-radius:0} + /* The whole window at this width is too small to read: its left part, larger. */ + .window img{height:20rem;object-fit:cover;object-position:0 0} + .pocket{grid-template-columns:minmax(0,1fr);gap:1.5rem} + .pocket img{order:2;width:58%;max-width:14rem} .dial{margin-inline:-1rem} .scale{border-radius:0} figcaption{padding-inline:1rem}