Files
deepseek-harness/apps/desktop/renderer/welcome.css
T

344 lines
7.3 KiB
CSS

@import url('./assets/window-material.css');
/* Figma 2121:39336 / 2138:44626, Platform modes. Native material supplies the blur. */
body {
color-scheme: light dark;
--dsw-alias-label-primary: #0f1115;
--dsw-alias-label-secondary: #61666b;
--dsw-alias-label-tertiary: #81858c;
--dsw-alias-label-primary-inverted: #fff;
--dsw-alias-brand-primary: var(--dsw-alias-label-primary);
--dsw-alias-button-primary-hover: #43454a;
--dsw-alias-button-elevated-fill: #fff;
--dsw-alias-button-floating-hover: #f1f3f5;
--dsw-alias-border-l2: #0000001a;
--dsw-alias-border-l4: #00000029;
--dsw-alias-label-caption: #adb2b8;
--welcome-tint: var(--dsw-desktop-window-tint);
--ds-transition-duration: 0.2s;
--ds-transition-duration-slow: 0.3s;
--ds-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
--dsw-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
--dsw-font-family-brand: 'Montserrat', var(--dsw-font-family);
}
@media (prefers-color-scheme: dark) {
body {
--dsw-alias-label-primary: #f9fafb;
--dsw-alias-label-secondary: #cfd3d6;
--dsw-alias-label-tertiary: #adb2b8;
--dsw-alias-label-primary-inverted: #353638;
--dsw-alias-button-primary-hover: #ebeef2;
--dsw-alias-button-elevated-fill: #43454a;
--dsw-alias-button-floating-hover: #353638;
--dsw-alias-border-l2: #ffffff1f;
--dsw-alias-border-l4: #ffffff33;
--dsw-alias-label-caption: #81858c;
}
}
* {
box-sizing: border-box;
}
[hidden] {
display: none !important;
}
html,
body {
width: 100%;
height: 100%;
margin: 0;
overflow: hidden;
background: transparent;
font-family: var(--dsw-font-family);
font-weight: 400;
}
#root {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
gap: 8px;
padding: 6px 16px;
background: var(--welcome-tint);
color: var(--dsw-alias-label-primary);
font-family: var(--dsw-font-family-brand);
font-weight: 300;
user-select: none;
-webkit-font-smoothing: antialiased;
}
.titlebar {
flex: 0 0 36px;
app-region: drag;
}
.welcome {
display: grid;
flex: 1;
min-height: 0;
grid-template-rows: 40px minmax(0, 1fr) 104px;
justify-items: center;
align-items: center;
padding: 24px 48px 76px;
}
.welcome > .tagline,
.welcome > .key-form,
.welcome > #auth-page {
grid-row: 2;
grid-column: 1;
}
.brand {
display: block;
flex: none;
width: 100%;
height: 40px;
user-select: none;
-webkit-user-drag: none;
}
.tagline {
margin: 0;
color: var(--dsw-alias-label-secondary);
font-size: 24px;
font-weight: 300;
line-height: 40px;
text-align: center;
white-space: nowrap;
}
.tagline h1,
.tagline p {
margin: 0;
font: inherit;
}
.tagline em {
color: var(--dsw-alias-label-primary);
font-family: var(--dsw-font-family-brand);
font-size: 26px;
font-style: normal;
font-weight: 500;
}
:lang(en) .tagline em {
font-size: inherit;
}
.actions {
position: relative;
grid-row: 3;
grid-column: 1;
align-self: stretch;
display: flex;
flex: none;
flex-direction: column;
gap: 16px;
width: 240px;
}
.actions button {
display: flex;
align-items: center;
justify-content: center;
height: 44px;
padding: 8px 16px;
border: 1px solid transparent;
border-radius: 10px;
font-family: var(--dsw-font-family);
font-size: 14px;
font-weight: 500;
line-height: 22px;
opacity: 1;
app-region: no-drag;
cursor: pointer;
transition:
background-color var(--ds-transition-duration) var(--ds-ease-in-out),
border-color var(--ds-transition-duration) var(--ds-ease-in-out),
opacity var(--ds-transition-duration) var(--ds-ease-in-out),
color var(--ds-transition-duration-slow) var(--ds-ease-in-out);
}
.actions button:disabled {
cursor: not-allowed;
opacity: 0.4;
}
.actions button:focus-visible {
outline: 2px solid var(--dsw-alias-label-primary);
outline-offset: 3px;
}
.primary {
background: var(--dsw-alias-brand-primary);
color: var(--dsw-alias-label-primary-inverted);
}
.primary:hover:not(:disabled) {
background: var(--dsw-alias-button-primary-hover);
}
.actions .secondary {
border-color: var(--dsw-alias-border-l2);
background: var(--dsw-alias-button-elevated-fill);
color: var(--dsw-alias-label-primary);
}
.actions .back {
position: absolute;
top: calc(100% + 16px);
left: 50%;
transform: translateX(-50%);
white-space: nowrap;
min-width: 58px;
height: 28px;
padding: 4px 10px;
border: 0;
border-radius: 24px;
corner-shape: round;
background: transparent;
color: var(--dsw-alias-label-secondary);
font-family: var(--dsw-font-family-brand);
font-weight: 300;
font-size: 14px;
line-height: 20px;
}
/* Platform text actions use color-only hover, preserving the native backdrop. */
.actions .back:hover:not(:disabled) {
color: var(--dsw-alias-brand-primary);
}
.actions .back:disabled {
color: var(--dsw-alias-label-caption);
opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
.actions button {
transition: none;
}
}
.actions .secondary:hover:not(:disabled) {
background: var(--dsw-alias-button-floating-hover);
}
.key-form {
display: flex;
flex-direction: column;
align-items: center;
gap: 40px;
width: 440px;
}
.key-heading {
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
text-align: center;
}
.key-heading h1 {
margin: 0;
font-size: 20px;
font-weight: 400;
line-height: 32px;
letter-spacing: 0.01em;
}
.key-heading p {
margin: 0;
color: var(--dsw-alias-label-secondary);
font-size: 16px;
font-weight: 300;
line-height: 22px;
letter-spacing: 0.02em;
}
.key-field {
position: relative;
width: 100%;
}
/* Text inputs match :focus-visible after pointer focus too; their border carries focus. */
.key-field input {
display: block;
width: 100%;
height: 48px;
padding: 7px 14px;
border: 1px solid var(--dsw-alias-border-l4);
border-radius: 12px;
outline: none;
background: transparent;
color: var(--dsw-alias-label-primary);
font-family: inherit;
font-weight: inherit;
font-size: 14px;
line-height: 24px;
user-select: text;
}
.key-field input:focus {
border-color: var(--dsw-alias-brand-primary);
}
.key-field input::placeholder {
color: var(--dsw-alias-label-caption);
opacity: 1;
}
.key-error {
position: absolute;
top: 100%;
width: 100%;
margin: 8px 0 0;
color: var(--dsw-alias-label-primary);
font-size: 14px;
line-height: 22px;
}
.visually-hidden {
position: absolute;
width: 1px;
height: 1px;
overflow: hidden;
clip-path: inset(50%);
white-space: nowrap;
}
.auth-expired { gap: 12px; padding-top: 28px; }
#auth-status { font-size: 20px; line-height: 24px; font-weight: 400; letter-spacing: normal; }
.auth-expired p { line-height: 16px; letter-spacing: normal; }
.auth-waiting { gap: 12px; padding-top: 28px; }
.auth-waiting p { line-height: 16px; letter-spacing: normal; }
.auth-waiting .copy-link {
margin-top: 20px;
padding: 0;
width: 240px;
min-height: 17px;
border: 0;
border-radius: 0;
background: transparent;
color: var(--dsw-alias-label-secondary);
font-family: inherit;
font-weight: inherit;
font-size: 14px;
line-height: 20px;
cursor: pointer;
app-region: no-drag;
text-decoration: underline;
}
#auth-loading:disabled { opacity: 1; }
.actions .welcome-loading { color: inherit; }
.auth-waiting .copy-link:disabled { cursor: default; }