supermemory/apps/web/app/globals.css
MaheshtheDev 5258cb74c8 chore(web): reduce the app to a redirect shell, drop the browser extension (#1651)
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
2026-09-07 19:56:46 +00:00

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;
}
}