Files
magicwang1111-ComfyUI-Accou…/account-manager-web/css/styles.css
T
2026-04-27 11:23:29 +08:00

507 lines
9.3 KiB
CSS

*,
*::before,
*::after {
box-sizing: border-box;
}
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
display: block;
}
ol,
ul {
list-style: none;
}
blockquote,
q {
quotes: none;
}
blockquote::before,
blockquote::after,
q::before,
q::after {
content: "";
}
table {
border-collapse: collapse;
border-spacing: 0;
}
:root {
--page-bg: #f5f7fb;
--page-bg-soft: #eef3fb;
--surface: rgba(255, 255, 255, 0.76);
--surface-strong: rgba(255, 255, 255, 0.92);
--surface-border: rgba(120, 136, 164, 0.22);
--text: #111827;
--text-muted: #667085;
--text-soft: #8a94a6;
--control-bg: rgba(255, 255, 255, 0.86);
--control-border: rgba(111, 124, 145, 0.24);
--control-border-hover: rgba(88, 101, 123, 0.38);
--accent: #007aff;
--accent-hover: #147efb;
--accent-active: #0062cc;
--danger: #ff3b30;
--success: #34c759;
--info: #007aff;
--shadow: 0 28px 70px rgba(42, 56, 86, 0.14);
--shadow-soft: 0 12px 28px rgba(42, 56, 86, 0.1);
color-scheme: light;
}
body {
min-height: 100vh;
width: 100vw;
margin: 0;
overflow-x: hidden;
display: flex;
align-items: center;
justify-content: center;
padding: 48px 24px;
background:
radial-gradient(circle at 18% 16%, rgba(255, 255, 255, 0.98), transparent 28%),
radial-gradient(circle at 82% 18%, rgba(213, 226, 248, 0.72), transparent 34%),
linear-gradient(145deg, #fbfcff 0%, var(--page-bg) 48%, var(--page-bg-soft) 100%);
color: var(--text);
font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Segoe UI", Arial, sans-serif;
line-height: 1.45;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}
body::before {
content: "";
position: fixed;
inset: 0;
pointer-events: none;
background-image: linear-gradient(rgba(255, 255, 255, 0.42) 1px, transparent 1px),
linear-gradient(90deg, rgba(255, 255, 255, 0.38) 1px, transparent 1px);
background-size: 46px 46px;
mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.34), transparent 72%);
}
.container {
position: relative;
width: min(100%, 404px);
display: flex;
align-items: stretch;
flex-direction: column;
padding: 34px;
color: var(--text);
background: var(--surface);
border: 1px solid var(--surface-border);
border-radius: 28px;
box-shadow: var(--shadow);
backdrop-filter: blur(26px) saturate(1.35);
-webkit-backdrop-filter: blur(26px) saturate(1.35);
}
.container::before {
content: "";
position: absolute;
inset: 1px;
pointer-events: none;
border-radius: 27px;
border: 1px solid rgba(255, 255, 255, 0.74);
}
.logo {
display: block;
width: 118px;
height: 118px;
object-fit: contain;
align-self: center;
margin: 0 0 18px;
filter: drop-shadow(0 18px 28px rgba(62, 83, 117, 0.18));
}
.title {
margin: 0 0 26px;
color: var(--text);
text-align: center;
font-size: 2rem;
font-weight: 700;
line-height: 1.12;
}
.title.register {
margin-bottom: 24px;
}
form,
.fields-group {
width: 100%;
}
.form-fields {
display: flex;
align-items: stretch;
gap: 26px;
}
.subtitle {
color: var(--text);
font-size: 0.84rem;
font-weight: 700;
letter-spacing: 0;
}
.divider {
display: block;
width: 100%;
height: 1px;
margin: 12px 0 18px;
background: linear-gradient(90deg, transparent, rgba(117, 132, 158, 0.28), transparent);
}
.divider.vertical {
width: 1px;
height: auto;
min-height: 188px;
margin: 34px 0 14px;
background: linear-gradient(180deg, transparent, rgba(117, 132, 158, 0.28), transparent);
flex: 0 0 1px;
}
.form-field {
width: 100%;
margin-bottom: 16px;
}
label {
display: block;
margin-bottom: 7px;
color: var(--text-muted);
font-size: 0.83rem;
font-weight: 600;
}
input {
width: 100%;
min-width: 0;
height: 44px;
padding: 0 14px;
color: var(--text);
background: var(--control-bg);
border: 1px solid var(--control-border);
border-radius: 12px;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78), 0 1px 2px rgba(32, 42, 60, 0.04);
font: inherit;
font-size: 0.96rem;
outline: none;
transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}
input:enabled:hover {
border-color: var(--control-border-hover);
background: rgba(255, 255, 255, 0.94);
}
input:enabled:focus {
border-color: rgba(0, 122, 255, 0.72);
box-shadow: 0 0 0 4px rgba(0, 122, 255, 0.13), inset 0 1px 0 rgba(255, 255, 255, 0.86);
}
input:disabled {
opacity: 0.54;
cursor: not-allowed;
}
input.error {
border-color: rgba(255, 59, 48, 0.84);
box-shadow: 0 0 0 4px rgba(255, 59, 48, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.78);
}
.btn {
width: 100%;
min-height: 44px;
margin-top: 2px;
padding: 0 18px;
color: #ffffff;
background: linear-gradient(180deg, var(--accent-hover), var(--accent));
border: 1px solid rgba(0, 98, 204, 0.2);
border-radius: 999px;
box-shadow: 0 10px 24px rgba(0, 122, 255, 0.24), inset 0 1px 0 rgba(255, 255, 255, 0.32);
cursor: pointer;
font: inherit;
font-size: 0.94rem;
font-weight: 700;
transition: transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease, opacity 160ms ease;
}
.btn:disabled {
opacity: 0.54;
cursor: not-allowed;
box-shadow: none;
}
.btn:not(:disabled):hover {
transform: translateY(-1px);
box-shadow: 0 14px 28px rgba(0, 122, 255, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.34);
}
.btn:not(:disabled):active {
transform: translateY(0);
background: linear-gradient(180deg, var(--accent), var(--accent-active));
}
a {
display: inline-flex;
align-items: center;
min-height: 32px;
color: var(--accent);
text-decoration: none;
border-radius: 999px;
font-size: 0.9rem;
font-weight: 600;
transition: color 160ms ease, background-color 160ms ease;
}
a:hover {
color: var(--accent-active);
}
a:focus-visible {
outline: 3px solid rgba(0, 122, 255, 0.2);
outline-offset: 4px;
}
.toast-container {
position: fixed;
top: 22px;
right: 22px;
z-index: 9999;
display: flex;
flex-direction: column;
gap: 12px;
width: min(340px, calc(100vw - 44px));
}
.toast-container .toast {
width: 100%;
height: auto;
min-width: 150px;
max-width: 400px;
padding: 15px 16px;
color: var(--text);
text-align: left;
word-wrap: break-word;
background: var(--surface-strong);
border: 1px solid var(--surface-border);
border-radius: 16px;
box-shadow: var(--shadow-soft);
opacity: 0;
backdrop-filter: blur(20px) saturate(1.25);
-webkit-backdrop-filter: blur(20px) saturate(1.25);
transition: opacity 240ms ease, transform 240ms ease;
transform: translateY(-6px);
}
.toast-container .toast.show {
opacity: 1;
transform: translateY(0);
}
.toast-container .toast.hide {
opacity: 0;
transform: translateY(-6px);
}
.toast-container .toast.success {
color: #157f3b;
background: rgba(240, 253, 244, 0.94);
border-color: rgba(52, 199, 89, 0.28);
}
.toast-container .toast.info {
color: #0759b8;
background: rgba(239, 246, 255, 0.94);
border-color: rgba(0, 122, 255, 0.26);
}
.toast-container .toast.error {
color: #b42318;
background: rgba(255, 241, 240, 0.94);
border-color: rgba(255, 59, 48, 0.28);
}
@media (min-width: 781px) {
.container.register-container {
width: min(100%, 664px);
}
}
@media (max-width: 780px) {
body {
align-items: flex-start;
padding: 34px 18px;
}
.container {
width: min(100%, 420px);
padding: 30px 24px;
border-radius: 24px;
}
.container::before {
border-radius: 23px;
}
.form-fields {
display: block;
}
.divider.vertical {
display: none !important;
}
.subtitle {
margin-top: 2px;
}
}
@media (max-width: 420px) {
body {
min-height: 100vh;
padding: 0;
background: linear-gradient(180deg, #fbfcff 0%, #eef3fb 100%);
}
body::before {
display: none;
}
.container {
width: 100%;
min-height: 100vh;
justify-content: center;
padding: 34px 24px;
border: none;
border-radius: 0;
box-shadow: none;
background: rgba(255, 255, 255, 0.68);
}
.container::before {
display: none;
}
.logo {
width: 108px;
height: 108px;
}
.title {
font-size: 1.84rem;
}
.toast-container {
top: 12px;
right: 12px;
width: calc(100vw - 24px);
}
}