Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion frontend/404.html
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,6 @@ <h1>Page not found</h1>
</div>
</div>
</footer>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
</body>
</html>
2 changes: 1 addition & 1 deletion frontend/about.html
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,6 @@ <h2 style="margin-top:var(--space-2)">Found a security issue?</h2>
</footer>

<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
</body>
</html>
2 changes: 1 addition & 1 deletion frontend/account.html
Original file line number Diff line number Diff line change
Expand Up @@ -399,7 +399,7 @@ <h2>Deactivate account.</h2>
</main>

<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
<script src="/js/account.inline1.js?v=2"></script>

<script type="module" src="/js/account.inline2.js?v=3"></script>
Expand Down
8 changes: 5 additions & 3 deletions frontend/apply-nav.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,10 @@
# the desktop bar, and js/nav-auth.js rewrites its whole inside after the
# session check. The two secondary routes a phone loses from the bar -- Sign in
# and Help -- therefore hang under it as their own strip, which nav.js opens
# and closes with the drawer and nav-auth.js removes once you are signed in
# (the user menu carries both from then on).
# and closes with the drawer. Signed in, nav-auth.js rewrites that strip down
# to Help alone: Sign in is not an action you still need, and Help is, on the
# one surface a phone has left for it. It used to REMOVE the strip there, which
# is how a signed-in phone ended up with no route to support at all.
NEW_MOBILE = '''\
<div class="nav-mobile" id="nav-mobile">
<a href="/#products" class="nav-mobile-standalone">Product</a>
Expand Down Expand Up @@ -90,7 +92,7 @@
DS_LINK = '<link rel="stylesheet" href="/design-system.css?v=25">'
NAV_LINK = '<link rel="stylesheet" href="/nav.css?v=20">'
NAV_JS = '<script src="/nav.js?v=15" defer></script>'
NAV_AUTH_JS = '<script src="/js/nav-auth.js?v=6" defer></script>'
NAV_AUTH_JS = '<script src="/js/nav-auth.js?v=7" defer></script>'

# Pages that don't have <nav class="nav"> yet but should — inject the canonical
# nav after <body> (or after a skip-link if present). App shells (admin,
Expand Down
2 changes: 1 addition & 1 deletion frontend/architecture.html
Original file line number Diff line number Diff line change
Expand Up @@ -749,6 +749,6 @@ <h2>Want the cryptographic specification?</h2>
</footer>

<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
</body>
</html>
2 changes: 1 addition & 1 deletion frontend/audit-log-export.html
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,6 @@ <h2 style="font-size:24px;font-weight:600;letter-spacing:-.02em;margin-bottom:10
</div>
</footer>
<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
</body>
</html>
2 changes: 1 addition & 1 deletion frontend/auth/backup.html
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ <h1>Use a <em>backup code</em>.</h1>
</main>

<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
<script src="/js/auth-backup.js?v=2"></script>

<footer class="legal-strip">
Expand Down
2 changes: 1 addition & 1 deletion frontend/auth/login.html
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ <h1>Welcome <em>back</em>.</h1>

<script src="/js/pow-captcha.js?v=1"></script>
<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
<script src="/js/auth-login.js?v=3"></script>
<script type="module" src="/js/passkey.js?v=3"></script>

Expand Down
2 changes: 1 addition & 1 deletion frontend/auth/request-reset.html
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ <h1>Reset your <em>authenticator</em>.</h1>

<script src="/js/pow-captcha.js?v=1"></script>
<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
<script src="/js/auth-request-reset.js?v=2"></script>
<footer class="legal-strip">
<a href="/privacy">Privacy</a><span class="legal-sep">&middot;</span><a href="/dpa">Data Processing Agreement</a><span class="legal-sep">&middot;</span><a href="/terms">Terms of Service</a>
Expand Down
2 changes: 1 addition & 1 deletion frontend/auth/reset-confirm.html
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ <h1>Confirm this <em>reset</em>.</h1>
</main>

<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
<script src="/js/auth-reset-confirm.js?v=3"></script>
<footer class="legal-strip">
<a href="/privacy">Privacy</a><span class="legal-sep">&middot;</span><a href="/dpa">Data Processing Agreement</a><span class="legal-sep">&middot;</span><a href="/terms">Terms of Service</a>
Expand Down
2 changes: 1 addition & 1 deletion frontend/auth/setup.html
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,7 @@ <h2>You're all set.</h2>
</main>

<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
<script src="/js/auth-setup.js?v=2"></script>
<script type="module" src="/js/passkey.js?v=3"></script>

Expand Down
2 changes: 1 addition & 1 deletion frontend/changelog.html
Original file line number Diff line number Diff line change
Expand Up @@ -295,6 +295,6 @@ <h3><span class="badge badge-security">Security</span></h3>
</footer>

<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
</body>
</html>
4 changes: 4 additions & 0 deletions frontend/co-sign.js
Original file line number Diff line number Diff line change
Expand Up @@ -740,6 +740,10 @@ async function doSign() {
else if (e && e.code === 'cancelled') msg = 'Signing cancelled. Tap Sign when you’re ready.';
else if (e && (e.code === 'totp_invalid' || e.code === 'totp_required')) msg = 'That authenticator code didn’t match. Tap Sign and enter the current 6-digit code.';
else if (e && e.code === 'totp_unavailable') msg = 'Set up an authenticator app on your account first (Account → Two-factor), then sign with its code.';
// Already translated by the signer (js/error-message.js): the message on
// this error is our own vetted sentence with a next step, never the wire's
// "http_502" or a browser's TypeError text. The detail is in the console.
else if (e && e.code === 'service_error') msg = e.message;
else if (e && (e.code === 'prf_unsupported' || e.code === 'need_passkey')) msg = 'Your passkey can’t do one-tap signing here. Tap Sign to sign with your authenticator code instead.';
else if (e && e.status) msg = 'Signing could not be completed right now (server error ' + e.status + '). Please try again in a moment.';
else msg = 'Your passkey could not complete signing on this browser. Tap Sign to try again. If it keeps failing, try a different browser, or use the passkey on your phone.';
Expand Down
2 changes: 1 addition & 1 deletion frontend/crypto-agility.html
Original file line number Diff line number Diff line change
Expand Up @@ -590,6 +590,6 @@ <h3>Verify the registry yourself</h3>
</div>
</footer>
<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
</body>
</html>
2 changes: 1 addition & 1 deletion frontend/ct-log.html
Original file line number Diff line number Diff line change
Expand Up @@ -429,6 +429,6 @@ <h2>Verify a hash</h2>
</div>
</footer>
<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
</body>
</html>
12 changes: 10 additions & 2 deletions frontend/dashboard.html
Original file line number Diff line number Diff line change
Expand Up @@ -546,7 +546,15 @@ <h2 id="dh-ask-title">Questions people ask before they trust this</h2>
<dl class="dh-ask-list">
<div class="dh-ask-item">
<dt>What does it cost?</dt>
<dd>Community is free forever, with no card. Paid plans start at &euro;15 a month excl. btw, which is ParaSend Pro. <a href="/pricing">See the plans</a></dd>
<!-- Two products, two prices, and this answer used to name only the
cheaper one. "Paid plans start at &euro;15 a month" is true of
sending and says nothing about signing, which is what this
dashboard is for: /help answers the same question with
"ParaSign Pro &euro;49". One customer, two pages, two numbers.
Both amounts are on /pricing and both are pinned to
relay/lib/billing-catalog.js by relay/test/pricing-page.test.js,
so neither can move here on its own. -->
<dd>Community is free forever, with no card. Sending starts at &euro;15 a month excl. btw, which is ParaSend Pro; signing starts at &euro;49 a month excl. btw, which is ParaSign Pro. <a href="/pricing">See the plans</a></dd>
</div>
<div class="dh-ask-item">
<dt>Who can read what I send?</dt>
Expand Down Expand Up @@ -640,7 +648,7 @@ <h2 id="dh-pm-title">Finish setting up your account</h2>
</footer>

<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
<script src="/js/dashboard.js?v=9" defer></script>
</body>
</html>
2 changes: 1 addition & 1 deletion frontend/developer.html
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ <h2>API key created</h2>
</div>

<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
<script src="/js/developer.js?v=7" defer></script>
</body>
</html>
2 changes: 1 addition & 1 deletion frontend/docs.html
Original file line number Diff line number Diff line change
Expand Up @@ -1041,7 +1041,7 @@ <h2 id="faq">Frequently asked questions</h2>

<script src="/js/docs.inline1.js?v=1"></script>
<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
<footer>
<div class="container-lg">
<div class="footer-grid footer-slim">
Expand Down
2 changes: 1 addition & 1 deletion frontend/download.html
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,7 @@ <h2>Who is behind it</h2>
</main>

<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>

<footer>
<div class="container-lg">
Expand Down
2 changes: 1 addition & 1 deletion frontend/dpa.html
Original file line number Diff line number Diff line change
Expand Up @@ -378,6 +378,6 @@ <h2>Sign electronically</h2>

<script src="/js/dpa.inline1.js?v=1"></script>
<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
</body>
</html>
2 changes: 1 addition & 1 deletion frontend/get.html
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ <h1>Something went wrong</h1>
</div>
</footer>
<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
<script type="module" src="/vendor/pdfjs/pdfjs-loader.js?v=3"></script>
<script src="/js/delegate.js?v=1" defer></script>
<script src="/js/get.page.js?v=2" defer></script>
Expand Down
2 changes: 1 addition & 1 deletion frontend/help/api-key-vs-totp.html
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,6 @@ <h3>IoT &amp; embedded devices</h3>
</footer>

<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
</body>
</html>
2 changes: 1 addition & 1 deletion frontend/help/authenticator-apps.html
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,6 @@ <h3>Security overview</h3>
</footer>

<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
</body>
</html>
2 changes: 1 addition & 1 deletion frontend/help/authenticator-setup.html
Original file line number Diff line number Diff line change
Expand Up @@ -407,6 +407,6 @@ <h3>API key or TOTP?</h3>
</footer>

<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
</body>
</html>
2 changes: 1 addition & 1 deletion frontend/help/backup-codes.html
Original file line number Diff line number Diff line change
Expand Up @@ -379,6 +379,6 @@ <h3>Set up your authenticator</h3>
</footer>

<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
</body>
</html>
2 changes: 1 addition & 1 deletion frontend/help/gmail-extension.html
Original file line number Diff line number Diff line change
Expand Up @@ -413,6 +413,6 @@ <h3>API key vs TOTP</h3>
</footer>

<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
</body>
</html>
2 changes: 1 addition & 1 deletion frontend/help/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -363,6 +363,6 @@ <h2>Troubleshooting</h2>
</footer>

<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
</body>
</html>
2 changes: 1 addition & 1 deletion frontend/help/iot-integration.html
Original file line number Diff line number Diff line change
Expand Up @@ -394,6 +394,6 @@ <h3>Full API reference</h3>
</footer>

<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
</body>
</html>
2 changes: 1 addition & 1 deletion frontend/help/lost-authenticator.html
Original file line number Diff line number Diff line change
Expand Up @@ -365,6 +365,6 @@ <h3>Set up your authenticator</h3>
</footer>

<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
</body>
</html>
2 changes: 1 addition & 1 deletion frontend/help/outlook-extension.html
Original file line number Diff line number Diff line change
Expand Up @@ -401,6 +401,6 @@ <h3>API key vs TOTP</h3>
</footer>

<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
</body>
</html>
2 changes: 1 addition & 1 deletion frontend/help/session-issues.html
Original file line number Diff line number Diff line change
Expand Up @@ -368,6 +368,6 @@ <h3>Backup codes</h3>
</footer>

<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
</body>
</html>
32 changes: 30 additions & 2 deletions frontend/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,34 @@
.hp-btn:focus-visible{outline:3px solid rgba(29,78,216,.35);outline-offset:2px}
.hp-btn:active{transform:translateY(1px)}

/* ---------- signed in: the hero is the whole page ----------
js/home-auth.js stamps data-session="in" on <html> once the session check
comes back authenticated. Everything under the hero is the sales page, and a
customer who has already bought does not need to be sold to: on a phone the
three actions were followed by eight screens of pitch, ending in the founder
letter. The selector names the sections rather than a list of ids, so a
section added tomorrow is covered the day it lands. The nav, the hero and
the footer stay; the footer is where the legal documents are. Signed out,
nothing here applies and the page is exactly what it was. */
html[data-session="in"] main > section:not(.home-hero){display:none}
/* The art goes with the pitch it illustrates. It is a document that gets
signed, sealed and then burns, on a 16-second loop, and it exists to explain
the product to someone who does not have it yet. It is also the reason the
hero cannot simply be made shorter: .hp-doc is absolutely positioned and
draws about 120px BELOW the 380px box .hp-art reserves for it, which is
invisible while the sales page continues underneath and becomes a document
cut in half the moment the hero is the last thing in <main> (main has
overflow:hidden). Measured at 1440 signed in: hero 472px, .hp-doc bottom 80px
past it, receipt and signature sliced through. A phone has hidden this art
since it shipped, for its own reason; signed in, every width does. */
html[data-session="in"] .hp-art{display:none}
/* With the art gone the second grid column is empty, so the hero is one column
at every width. The wrap keeps its own 1120px width, which is what lines the
hero up with the nav and the footer; the heading, the lede and the founder
line carry their own ch-based measures, so nothing stretches. */
html[data-session="in"] .home-hero .hp-wrap{grid-template-columns:minmax(0,1fr)}
html[data-session="in"] .home-hero{padding-bottom:56px}

/* ---------- hero ---------- */
.home-hero{position:relative;padding:28px 0 32px;background:linear-gradient(180deg,#F8FAFC 0,var(--hp-paper) 160px)}
.home-hero .hp-wrap{position:relative;display:grid;gap:28px}
Expand Down Expand Up @@ -588,7 +616,7 @@ <h2 id="trust-h" class="hp-h2">Rules you can check. Every one has a proof.</h2>
</div>
</footer>
<script src="/nav.js?v=15" defer></script>
<script src="/js/nav-auth.js?v=6" defer></script>
<script src="/js/home-auth.js?v=1" defer></script>
<script src="/js/nav-auth.js?v=7" defer></script>
<script src="/js/home-auth.js?v=2" defer></script>
</body>
</html>
Loading