feat(FEAT-MO-001): 完成TDX市场概览首屏
This commit is contained in:
+474
-1
@@ -44,7 +44,7 @@ textarea {
|
||||
.app-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
justify-content: space-between;
|
||||
min-height: 52px;
|
||||
padding: 0 20px;
|
||||
color: #fff;
|
||||
@@ -52,6 +52,29 @@ textarea {
|
||||
border-bottom: 1px solid #343b44;
|
||||
}
|
||||
|
||||
.app-identity {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.app-identity strong,
|
||||
.app-identity small {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.app-identity small {
|
||||
margin-top: 2px;
|
||||
color: #aeb7c2;
|
||||
font-size: 11px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.header-context {
|
||||
color: #aeb7c2;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.app-mark {
|
||||
display: inline-grid;
|
||||
width: 28px;
|
||||
@@ -69,10 +92,460 @@ textarea {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.market-overview-page {
|
||||
display: grid;
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
.overview-toolbar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 14px;
|
||||
min-height: 42px;
|
||||
}
|
||||
|
||||
.view-switcher {
|
||||
display: inline-flex;
|
||||
padding: 3px;
|
||||
background: #e8edf1;
|
||||
border: 1px solid #d5dce3;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.view-switcher button,
|
||||
.refresh-button,
|
||||
.quiet-button,
|
||||
.sector-list button {
|
||||
border: 0;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
.view-switcher button {
|
||||
min-width: 72px;
|
||||
padding: 7px 12px;
|
||||
color: #4c5966;
|
||||
background: transparent;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.view-switcher button.active {
|
||||
color: #17212b;
|
||||
background: #fff;
|
||||
box-shadow: 0 1px 3px rgb(28 40 52 / 14%);
|
||||
}
|
||||
|
||||
.toolbar-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.toolbar-actions label {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 7px;
|
||||
color: #65717d;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.toolbar-actions select {
|
||||
min-height: 32px;
|
||||
padding: 0 28px 0 9px;
|
||||
color: #24303b;
|
||||
background: #fff;
|
||||
border: 1px solid #ccd4dc;
|
||||
border-radius: 4px;
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
.refresh-button {
|
||||
min-height: 32px;
|
||||
padding: 0 12px;
|
||||
color: #fff;
|
||||
background: #167d82;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.refresh-button:disabled {
|
||||
cursor: wait;
|
||||
opacity: 0.55;
|
||||
}
|
||||
|
||||
.overview-conclusion,
|
||||
.overview-panel {
|
||||
background: #fff;
|
||||
border: 1px solid #dbe1e6;
|
||||
border-radius: 7px;
|
||||
box-shadow: 0 3px 14px rgb(26 38 49 / 5%);
|
||||
}
|
||||
|
||||
.overview-conclusion {
|
||||
padding: 22px 24px 18px;
|
||||
}
|
||||
|
||||
.section-kicker {
|
||||
color: #167d82;
|
||||
font-size: 11px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.08em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.conclusion-heading,
|
||||
.panel-heading {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
justify-content: space-between;
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
.conclusion-heading {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.conclusion-heading h1,
|
||||
.panel-heading h2 {
|
||||
margin: 0;
|
||||
color: #17212b;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
|
||||
.conclusion-heading h1 {
|
||||
font-size: clamp(24px, 3vw, 38px);
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
.panel-heading h2 {
|
||||
margin-top: 4px;
|
||||
font-size: 17px;
|
||||
}
|
||||
|
||||
.conclusion-copy {
|
||||
margin: 10px 0 0;
|
||||
color: #475563;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.source-status {
|
||||
display: grid;
|
||||
grid-template-columns: auto auto;
|
||||
align-items: center;
|
||||
gap: 5px 7px;
|
||||
min-width: 142px;
|
||||
padding: 9px 11px;
|
||||
color: #167d82;
|
||||
background: #eff8f7;
|
||||
border: 1px solid #cbe6e2;
|
||||
border-radius: 5px;
|
||||
font-size: 12px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.source-status small {
|
||||
grid-column: 1 / -1;
|
||||
color: #6d7a85;
|
||||
font-size: 10px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.source-status[data-status='unavailable'] {
|
||||
color: #a45e1b;
|
||||
background: #fff7ec;
|
||||
border-color: #f0d7b5;
|
||||
}
|
||||
|
||||
.status-dot {
|
||||
width: 7px;
|
||||
height: 7px;
|
||||
background: currentcolor;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.conclusion-facts {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
gap: 10px;
|
||||
margin-top: 21px;
|
||||
padding-top: 15px;
|
||||
border-top: 1px solid #e6eaee;
|
||||
}
|
||||
|
||||
.conclusion-facts div {
|
||||
display: grid;
|
||||
gap: 5px;
|
||||
}
|
||||
|
||||
.conclusion-facts span,
|
||||
.panel-meta,
|
||||
.breadth-values span,
|
||||
.column-label {
|
||||
color: #7b8792;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.conclusion-facts strong {
|
||||
color: #2e3b47;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.module-warning {
|
||||
margin: 13px 0 0;
|
||||
color: #a45e1b;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.overview-grid {
|
||||
display: grid;
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
.overview-grid-top {
|
||||
grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
|
||||
}
|
||||
|
||||
.overview-grid-bottom {
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.overview-panel {
|
||||
min-height: 190px;
|
||||
padding: 18px;
|
||||
}
|
||||
|
||||
.panel-heading {
|
||||
align-items: center;
|
||||
margin-bottom: 17px;
|
||||
}
|
||||
|
||||
.panel-meta {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.quiet-button {
|
||||
padding: 6px 9px;
|
||||
color: #167d82;
|
||||
background: #eff8f7;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.drivers-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 17px;
|
||||
}
|
||||
|
||||
.driver-column + .driver-column {
|
||||
padding-left: 17px;
|
||||
border-left: 1px solid #e6eaee;
|
||||
}
|
||||
|
||||
.column-label {
|
||||
display: block;
|
||||
margin-bottom: 8px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.column-label.positive,
|
||||
.positive {
|
||||
color: #c33f3f;
|
||||
}
|
||||
|
||||
.column-label.negative,
|
||||
.negative {
|
||||
color: #19846e;
|
||||
}
|
||||
|
||||
.driver-column ul {
|
||||
display: grid;
|
||||
gap: 8px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: #485664;
|
||||
font-size: 12px;
|
||||
line-height: 1.55;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.driver-column li {
|
||||
position: relative;
|
||||
padding-left: 13px;
|
||||
}
|
||||
|
||||
.driver-column li::before {
|
||||
position: absolute;
|
||||
top: 0.62em;
|
||||
left: 0;
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
background: #aeb8c1;
|
||||
border-radius: 50%;
|
||||
content: '';
|
||||
}
|
||||
|
||||
.index-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
gap: 9px;
|
||||
}
|
||||
|
||||
.index-item {
|
||||
display: grid;
|
||||
gap: 7px;
|
||||
min-height: 112px;
|
||||
padding: 13px;
|
||||
color: #4c5966;
|
||||
text-align: left;
|
||||
background: #f8fafb;
|
||||
border: 1px solid #e3e8ec;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
.index-item:hover {
|
||||
border-color: #a5c9c7;
|
||||
box-shadow: 0 2px 8px rgb(26 38 49 / 8%);
|
||||
}
|
||||
|
||||
.index-item strong {
|
||||
color: #1c2a35;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.index-item small {
|
||||
color: #7d8893;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.index-item[data-direction='up'] small {
|
||||
color: #c33f3f;
|
||||
}
|
||||
|
||||
.index-item[data-direction='down'] small {
|
||||
color: #19846e;
|
||||
}
|
||||
|
||||
.breadth-values {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: 8px;
|
||||
margin-top: 32px;
|
||||
}
|
||||
|
||||
.breadth-values div {
|
||||
display: grid;
|
||||
gap: 8px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.breadth-values strong {
|
||||
color: #2e3b47;
|
||||
font-size: 25px;
|
||||
}
|
||||
|
||||
.module-placeholder,
|
||||
.module-unavailable {
|
||||
display: grid;
|
||||
align-content: center;
|
||||
min-height: 104px;
|
||||
gap: 6px;
|
||||
color: #8a959f;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.module-unavailable strong {
|
||||
color: #a45e1b;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.module-unavailable span {
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.sector-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 7px;
|
||||
}
|
||||
|
||||
.sector-list button {
|
||||
padding: 7px 9px;
|
||||
color: #4c5966;
|
||||
background: #f3f7f7;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
@media (max-width: 900px) {
|
||||
.overview-grid-top,
|
||||
.overview-grid-bottom {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.app-header,
|
||||
.app-main {
|
||||
padding-right: 14px;
|
||||
padding-left: 14px;
|
||||
}
|
||||
|
||||
.header-context {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.overview-toolbar,
|
||||
.conclusion-heading {
|
||||
align-items: stretch;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.toolbar-actions {
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.view-switcher {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.view-switcher button {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.overview-conclusion {
|
||||
padding: 18px 16px 15px;
|
||||
}
|
||||
|
||||
.conclusion-heading h1 {
|
||||
font-size: 27px;
|
||||
}
|
||||
|
||||
.source-status {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.conclusion-facts {
|
||||
gap: 7px;
|
||||
}
|
||||
|
||||
.conclusion-facts strong {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.drivers-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.driver-column + .driver-column {
|
||||
padding-top: 14px;
|
||||
padding-left: 0;
|
||||
border-top: 1px solid #e6eaee;
|
||||
border-left: 0;
|
||||
}
|
||||
|
||||
.index-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user