344 lines
7.3 KiB
CSS
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; }
|