Skip to content

Commit aa9cd77

Browse files
SharonHartCopilot
andcommitted
Rebrand portal: octopus mascot, premium light theme, scroll animations
- Logo: new high-res octopus mascot hero; gradient app-icon favicon set (favicon, apple-touch-icon, icon-512, nav/footer mark) - Redesign: light-first premium system — Plus Jakarta Sans + Inter, restrained indigo accent, calmer neutral palette, refined buttons/cards - Motion: directional scroll-reveals (slide-in from sides, staggered), animated heading + nav underlines, card hover lift; all transform/opacity and gated behind prefers-reduced-motion - Content: new "Runs where you work" ecosystem section with verified brand logos (Python, Docker, Kubernetes, GitHub) - Config: allow tunnel/preview hosts in vite config - Cleanup: remove unused prism hero image Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 5eb7579 commit aa9cd77

9 files changed

Lines changed: 350 additions & 89 deletions

File tree

‎astro.config.mjs‎

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ import starlight from "@astrojs/starlight";
55
// https://astro.build/config
66
export default defineConfig({
77
site: "https://dataprivacystack.org",
8+
// Allow the public Dev Tunnel host to reach the dev/preview server
9+
// (Vite blocks unknown hosts by default).
10+
vite: {
11+
server: { allowedHosts: true },
12+
preview: { allowedHosts: true },
13+
},
814
integrations: [
915
starlight({
1016
title: "Data Privacy Stack",
@@ -24,15 +30,16 @@ export default defineConfig({
2430
// Default to dark regardless of OS; only an explicit toggle overrides it.
2531
tag: "script",
2632
content:
27-
'try{var t=localStorage.getItem("starlight-theme");if(t!=="light"&&t!=="dark"){t="dark";localStorage.setItem("starlight-theme",t)}document.documentElement.dataset.theme=t}catch(e){}',
33+
'try{var t=localStorage.getItem("starlight-theme");if(t!=="light"&&t!=="dark"){t="light";localStorage.setItem("starlight-theme",t)}document.documentElement.dataset.theme=t}catch(e){}',
2834
},
2935
{ tag: "link", attrs: { rel: "preconnect", href: "https://fonts.googleapis.com" } },
3036
{ tag: "link", attrs: { rel: "preconnect", href: "https://fonts.gstatic.com", crossorigin: true } },
37+
{ tag: "link", attrs: { rel: "apple-touch-icon", href: "/apple-touch-icon.png" } },
3138
{
3239
tag: "link",
3340
attrs: {
3441
rel: "stylesheet",
35-
href: "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap",
42+
href: "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@500;600;700;800&family=Inter:wght@400;500;600;700&display=swap",
3643
},
3744
},
3845
],

‎public/apple-touch-icon.png‎

14.1 KB
Loading

‎public/favicon.png‎

-3.58 KB
Loading

‎public/icon-512.png‎

48.4 KB
Loading

‎src/assets/dps-mark.png‎

-163 KB
Loading

‎src/assets/octopus.png‎

501 KB
Loading

‎src/assets/prism.png‎

-1.25 MB
Binary file not shown.

‎src/pages/index.astro‎

Lines changed: 306 additions & 53 deletions
Large diffs are not rendered by default.

‎src/styles/tokens.css‎

Lines changed: 35 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,58 @@
11
/*
2-
* Data Privacy Stack — design tokens
3-
* Seeded from the original placeholder palette (teal accent #1f7a8c).
4-
* Starlight reads --sl-color-* variables; we map our brand onto them so
5-
* the portal and the docs UI stay visually consistent.
2+
* Data Privacy Stack — design tokens (v2: refined / premium / light-first)
3+
* Calm neutral canvas + one restrained indigo accent; the octopus mascot
4+
* carries the colour. Type: Plus Jakarta Sans (display) + Inter (body).
5+
* Starlight reads --sl-color-* variables so the portal and docs stay aligned.
66
*/
77

88
:root {
9-
/* Brand palette */
10-
--dps-teal: #1f7a8c;
11-
--dps-teal-dark: #155e6c;
12-
--dps-teal-darker: #0e4651;
13-
--dps-ink: #12343b;
14-
--dps-muted: #4a6368;
15-
/* Matches the prism artwork's background (sampled top → bottom) so the
16-
hero image blends seamlessly into the page. */
17-
--dps-bg-start: #cde2f9;
18-
--dps-bg-end: #b6d4f2;
9+
--dps-ink: #11131a; /* near-black text */
10+
--dps-indigo: #4f46e5; /* primary accent */
11+
--dps-indigo-dark: #4338ca;
12+
--dps-violet: #7c3aed; /* secondary, used sparingly */
13+
--dps-cyan: #22d3ee;
14+
--dps-muted: #5b6472;
15+
--dps-bg: #fbfbfd; /* page canvas */
1916
--dps-card: #ffffff;
20-
--dps-accent: #e09f3e; /* warm secondary accent */
17+
--dps-border: #e6e8ee;
2118
}
2219

23-
/* Light theme */
20+
/* Light theme (default) */
2421
:root[data-theme="light"] {
25-
--sl-color-accent-low: #d2e6ea;
26-
--sl-color-accent: var(--dps-teal);
27-
--sl-color-accent-high: var(--dps-teal-darker);
22+
--sl-color-accent-low: #e7e6fb;
23+
--sl-color-accent: var(--dps-indigo);
24+
--sl-color-accent-high: var(--dps-indigo-dark);
2825
--sl-color-white: var(--dps-ink);
29-
--sl-color-gray-1: #1c3a41;
30-
--sl-color-gray-2: #355057;
26+
--sl-color-gray-1: #1c2230;
27+
--sl-color-gray-2: #3a4252;
3128
--sl-color-gray-3: var(--dps-muted);
32-
--sl-color-text-accent: var(--dps-teal-dark);
29+
--sl-color-text-accent: var(--dps-indigo);
3330
}
3431

3532
/* Dark theme */
3633
:root[data-theme="dark"] {
37-
--sl-color-accent-low: #0e3038;
38-
--sl-color-accent: #4bb0c4;
39-
--sl-color-accent-high: #cdeef5;
40-
--sl-color-text-accent: #7fcdda;
34+
--sl-color-bg: #0e1116;
35+
--sl-color-accent-low: #1b1b3a;
36+
--sl-color-accent: #8b83ff;
37+
--sl-color-accent-high: #c7c2ff;
38+
--sl-color-text-accent: #a99dff;
4139
}
4240

4341
/* Shared brand variables used by the custom landing page */
4442
:root {
45-
--dps-gradient: linear-gradient(180deg, var(--dps-bg-start), var(--dps-bg-end));
46-
--dps-radius: 16px;
47-
--dps-shadow: 0 20px 45px rgba(18, 52, 59, 0.12);
48-
/* Type pairing: Space Grotesk (distinctive geometric display) for headings,
49-
IBM Plex Sans (more character than Inter) for body. */
50-
--dps-font: "IBM Plex Sans", "Segoe UI", "Helvetica Neue", sans-serif;
51-
--dps-font-display: "Space Grotesk", "IBM Plex Sans", "Segoe UI", sans-serif;
43+
/* Subtle indigo→violet, reserved for tiny accents (the octopus carries colour) */
44+
--dps-gradient: linear-gradient(135deg, #6366f1 0%, #7c3aed 100%);
45+
--dps-radius: 14px;
46+
--dps-shadow: 0 1px 2px rgba(17, 19, 26, 0.04), 0 14px 34px rgba(17, 19, 26, 0.09);
47+
--dps-font: "Inter", "Segoe UI", "Helvetica Neue", sans-serif;
48+
--dps-font-display: "Plus Jakarta Sans", "Inter", "Segoe UI", sans-serif;
49+
/* Strong custom easings (Emil Kowalski) */
50+
--ease-out: cubic-bezier(0.23, 1, 0.32, 1);
51+
--ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
5252
}
5353

5454
/* Make the docs/blog (Starlight) use the same type as the portal */
5555
:root {
56-
--sl-font: "IBM Plex Sans", "Segoe UI", "Helvetica Neue", sans-serif;
56+
--sl-font: "Inter", "Segoe UI", "Helvetica Neue", sans-serif;
57+
--sl-font-headings: "Plus Jakarta Sans", "Inter", "Segoe UI", sans-serif;
5758
}

0 commit comments

Comments
 (0)