mirror of
https://github.com/supermemoryai/supermemory.git
synced 2026-09-30 01:51:28 +00:00
chore(web): reduce the app to a redirect shell, drop the browser extension app.supermemory.ai now forwards everything to the console: plugin, OAuth and invite paths get an immediate 308 with the query intact, everything else shows a short notice first. Removes the browser extension workspace. chore(web): give the moved notice a proper design Hostnames become the headline, one primary action, a draining line for the countdown, DM Sans and the dot-grid backdrop from the brand. chore(docs): point docs and README at the console, drop stale sections Docs and both READMEs now link to console.supermemory.ai for API keys. Removed the company-brain docs tab with a redirect, and trimmed the README app section. chore(web): give the redirect five seconds
200 lines
2.9 KiB
CSS
200 lines
2.9 KiB
CSS
:root {
|
|
--ink: #05080d;
|
|
--text: #fafafa;
|
|
--muted: #737373;
|
|
--faint: #525d6e;
|
|
--accent: #4ba0fa;
|
|
--line: rgba(82, 89, 102, 0.2);
|
|
}
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
html,
|
|
body {
|
|
margin: 0;
|
|
background: var(--ink);
|
|
color: var(--text);
|
|
font-family:
|
|
var(--font-sans), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
-webkit-font-smoothing: antialiased;
|
|
}
|
|
|
|
.page {
|
|
position: relative;
|
|
min-height: 100dvh;
|
|
overflow: hidden;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.page::before {
|
|
content: "";
|
|
position: absolute;
|
|
inset: 0;
|
|
pointer-events: none;
|
|
background-image: radial-gradient(
|
|
circle at center,
|
|
rgba(105, 167, 240, 0.22) 1px,
|
|
transparent 1px
|
|
);
|
|
background-size: 28px 28px;
|
|
mask-image: radial-gradient(
|
|
ellipse at 30% 50%,
|
|
black 0%,
|
|
black 30%,
|
|
transparent 75%
|
|
);
|
|
-webkit-mask-image: radial-gradient(
|
|
ellipse at 30% 50%,
|
|
black 0%,
|
|
black 30%,
|
|
transparent 75%
|
|
);
|
|
}
|
|
|
|
.brand {
|
|
position: relative;
|
|
padding: 28px 32px;
|
|
}
|
|
|
|
.brand img {
|
|
display: block;
|
|
height: 22px;
|
|
width: auto;
|
|
}
|
|
|
|
.notice {
|
|
position: relative;
|
|
flex: 1;
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 24px 32px 96px;
|
|
}
|
|
|
|
.notice-inner {
|
|
width: 100%;
|
|
max-width: 560px;
|
|
}
|
|
|
|
.headline {
|
|
margin: 0 0 32px;
|
|
font-size: clamp(40px, 7vw, 64px);
|
|
font-weight: 600;
|
|
line-height: 1;
|
|
letter-spacing: -0.03em;
|
|
}
|
|
|
|
.hosts {
|
|
margin: 0 0 28px;
|
|
padding: 0;
|
|
list-style: none;
|
|
font-size: clamp(20px, 3.2vw, 28px);
|
|
font-weight: 500;
|
|
letter-spacing: -0.01em;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.host-old {
|
|
color: var(--faint);
|
|
text-decoration: line-through;
|
|
text-decoration-color: var(--faint);
|
|
text-decoration-thickness: 1.5px;
|
|
}
|
|
|
|
.host-new {
|
|
color: var(--accent);
|
|
}
|
|
|
|
.body {
|
|
margin: 0 0 36px;
|
|
max-width: 44ch;
|
|
font-size: 16px;
|
|
line-height: 1.55;
|
|
color: var(--muted);
|
|
}
|
|
|
|
.action {
|
|
display: inline-block;
|
|
width: 100%;
|
|
max-width: 280px;
|
|
}
|
|
|
|
.button {
|
|
display: block;
|
|
width: 100%;
|
|
padding: 14px 20px;
|
|
border-radius: 10px;
|
|
background: var(--text);
|
|
color: var(--ink);
|
|
font: inherit;
|
|
font-size: 15px;
|
|
font-weight: 600;
|
|
text-align: center;
|
|
text-decoration: none;
|
|
transition: background-color 120ms ease;
|
|
}
|
|
|
|
.button:hover {
|
|
background: #e5e5e5;
|
|
}
|
|
|
|
.button:focus-visible {
|
|
outline: 2px solid var(--accent);
|
|
outline-offset: 3px;
|
|
}
|
|
|
|
.progress {
|
|
position: relative;
|
|
margin-top: 14px;
|
|
height: 2px;
|
|
background: var(--line);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.progress::after {
|
|
content: "";
|
|
position: absolute;
|
|
inset: 0;
|
|
background: var(--accent);
|
|
transform-origin: left;
|
|
animation: drain var(--seconds) linear forwards;
|
|
}
|
|
|
|
.status {
|
|
margin: 10px 0 0;
|
|
font-size: 13px;
|
|
color: var(--faint);
|
|
}
|
|
|
|
@keyframes drain {
|
|
from {
|
|
transform: scaleX(1);
|
|
}
|
|
to {
|
|
transform: scaleX(0);
|
|
}
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.progress {
|
|
display: none;
|
|
}
|
|
.button {
|
|
transition: none;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.brand {
|
|
padding: 22px 20px;
|
|
}
|
|
.notice {
|
|
align-items: flex-start;
|
|
padding: 40px 20px 64px;
|
|
}
|
|
.action {
|
|
max-width: none;
|
|
}
|
|
}
|