diff --git a/frontend/src/styles/strategyEditor.css b/frontend/src/styles/strategyEditor.css index 5357a23..e5bfada 100644 --- a/frontend/src/styles/strategyEditor.css +++ b/frontend/src/styles/strategyEditor.css @@ -2311,6 +2311,10 @@ body.se-palette-drag-armed .se-palette-section--scroll { border-color: color-mix(in srgb, var(--se-palette-band-accent) 42%, transparent); background: var(--se-palette-band-bg); box-shadow: inset 3px 0 0 var(--se-palette-band-accent); + --se-palette-chip-caption: color-mix(in srgb, var(--se-palette-band-accent) 38%, #fff 62%); + --se-palette-chip-period-value: color-mix(in srgb, var(--se-palette-band-accent) 22%, #fff 78%); + --se-palette-chip-period-bg: color-mix(in srgb, #000 34%, transparent); + --se-palette-chip-period-border: color-mix(in srgb, var(--se-palette-band-accent) 42%, transparent); } .se-palette-card--band .se-palette-card-icon { background: color-mix(in srgb, var(--se-palette-band-accent) 22%, transparent); @@ -2328,6 +2332,10 @@ body.se-palette-drag-armed .se-palette-section--scroll { box-shadow: inset 3px 0 0 var(--se-palette-ind-accent), inset 0 1px 0 color-mix(in srgb, var(--se-text) 6%, transparent); + --se-palette-chip-caption: color-mix(in srgb, var(--se-palette-ind-accent) 34%, #fff 66%); + --se-palette-chip-period-value: color-mix(in srgb, var(--se-palette-ind-accent) 18%, #fff 82%); + --se-palette-chip-period-bg: color-mix(in srgb, #000 34%, transparent); + --se-palette-chip-period-border: color-mix(in srgb, var(--se-palette-ind-accent) 40%, transparent); } .se-palette-card--ind .se-palette-card-icon { background: color-mix(in srgb, var(--se-palette-ind-accent) 22%, transparent); @@ -2348,6 +2356,10 @@ body.se-palette-drag-armed .se-palette-section--scroll { box-shadow: inset 3px 0 0 #c084fc, inset 0 1px 0 color-mix(in srgb, var(--se-text) 6%, transparent); + --se-palette-chip-caption: color-mix(in srgb, #c084fc 36%, #fff 64%); + --se-palette-chip-period-value: color-mix(in srgb, #c084fc 20%, #fff 80%); + --se-palette-chip-period-bg: color-mix(in srgb, #000 34%, transparent); + --se-palette-chip-period-border: color-mix(in srgb, #c084fc 40%, transparent); } .se-palette-card--composite .se-palette-card-icon { background: color-mix(in srgb, #c084fc 22%, transparent); @@ -2372,6 +2384,10 @@ body.se-palette-drag-armed .se-palette-section--scroll { box-shadow: inset 3px 0 0 var(--se-palette-range-accent), inset 0 1px 0 color-mix(in srgb, var(--se-text) 6%, transparent); + --se-palette-chip-caption: color-mix(in srgb, var(--se-palette-range-accent) 34%, #fff 66%); + --se-palette-chip-period-value: color-mix(in srgb, var(--se-palette-range-accent) 18%, #fff 82%); + --se-palette-chip-period-bg: color-mix(in srgb, #000 34%, transparent); + --se-palette-chip-period-border: color-mix(in srgb, var(--se-palette-range-accent) 40%, transparent); } .se-palette-card.se-palette-card--range .se-palette-card-icon, .se-palette-card.se-palette-card--range-include .se-palette-card-icon { @@ -2396,6 +2412,10 @@ body.se-palette-drag-armed .se-palette-section--scroll { box-shadow: inset 3px 0 0 var(--se-palette-range-exclude-accent), inset 0 1px 0 color-mix(in srgb, var(--se-text) 6%, transparent); + --se-palette-chip-caption: color-mix(in srgb, var(--se-palette-range-exclude-accent) 34%, #fff 66%); + --se-palette-chip-period-value: color-mix(in srgb, var(--se-palette-range-exclude-accent) 18%, #fff 82%); + --se-palette-chip-period-bg: color-mix(in srgb, #000 34%, transparent); + --se-palette-chip-period-border: color-mix(in srgb, var(--se-palette-range-exclude-accent) 40%, transparent); } .se-palette-card.se-palette-card--range-exclude .se-palette-card-icon { background: color-mix(in srgb, var(--se-palette-range-exclude-accent) 22%, transparent); @@ -2427,8 +2447,14 @@ body.se-palette-drag-armed .se-palette-section--scroll { flex-shrink: 0; transition: background 0.12s, color 0.12s; } -.se-palette-card-meta { min-width: 0; } -.se-palette-card-name { font-size: 0.68rem; font-weight: 700; line-height: 1.2; display: block; } +.se-palette-card-meta { min-width: 0; flex: 1; } +.se-palette-card-name { + font-size: 0.72rem; + font-weight: 800; + line-height: 1.25; + letter-spacing: -0.01em; + display: block; +} /* 지표 탭 — 전략·보조 지표 컨트롤 이름 (오렌지) */ .se-palette-panel .se-palette-card--band .se-palette-card-name, @@ -2438,14 +2464,87 @@ body.se-palette-drag-armed .se-palette-section--scroll { .se-palette-panel .se-palette-card.se-palette-card--range-include .se-palette-card-name, .se-palette-panel .se-palette-card.se-palette-card--range-exclude .se-palette-card-name { color: var(--se-palette-strategy-name, #f59e0b); + text-shadow: 0 1px 2px color-mix(in srgb, #000 55%, transparent); +} + +/* 지표 탭 — 설명·기간 보조 텍스트 가독성 */ +.se-palette-panel .se-palette-card--band .se-palette-card-desc, +.se-palette-panel .se-palette-card--ind .se-palette-card-desc, +.se-palette-panel .se-palette-card--composite .se-palette-card-desc, +.se-palette-panel .se-palette-card.se-palette-card--range .se-palette-card-desc, +.se-palette-panel .se-palette-card.se-palette-card--range-include .se-palette-card-desc, +.se-palette-panel .se-palette-card.se-palette-card--range-exclude .se-palette-card-desc { + color: var(--se-palette-chip-caption, var(--se-text-muted)); + font-size: 0.62rem; + font-weight: 600; + line-height: 1.35; + letter-spacing: 0.01em; } .se-palette-card-desc { font-size: 0.58rem; color: var(--se-text-dim); display: block; } +.se-palette-panel .se-palette-card--band .se-palette-card-period, +.se-palette-panel .se-palette-card--ind .se-palette-card-period, +.se-palette-panel .se-palette-card--composite .se-palette-card-period, +.se-palette-panel .se-palette-card.se-palette-card--range .se-palette-card-period, +.se-palette-panel .se-palette-card.se-palette-card--range-include .se-palette-card-period, +.se-palette-panel .se-palette-card.se-palette-card--range-exclude .se-palette-card-period { + margin-top: 6px; + font-size: 0.62rem; + font-weight: 700; + letter-spacing: 0.02em; + color: var(--se-palette-chip-caption, var(--se-text-muted)); +} + .se-palette-card-period { display: flex; align-items: center; gap: 4px; margin-top: 6px; font-size: 0.58rem; color: var(--se-text-dim); } + +.se-palette-panel .se-palette-period-input { + flex: 1; + min-width: 0; + width: auto; + text-align: left; + padding: 2px 5px; + font-size: 0.62rem; + font-weight: 700; + font-variant-numeric: tabular-nums; + letter-spacing: 0.01em; + color: var(--se-palette-chip-period-value, var(--se-text)); + background: var(--se-palette-chip-period-bg, var(--se-input-bg)); + border-color: var(--se-palette-chip-period-border, var(--se-input-border)); +} + +.se-palette-panel .se-palette-sync { + flex-shrink: 0; + color: color-mix(in srgb, var(--se-success) 88%, #fff 12%); + font-size: 0.72rem; + font-weight: 800; + filter: drop-shadow(0 1px 1px color-mix(in srgb, #000 45%, transparent)); +} + +.se-page--light .se-palette-panel .se-palette-card--band .se-palette-card-name, +.se-page--light .se-palette-panel .se-palette-card--ind .se-palette-card-name, +.se-page--light .se-palette-panel .se-palette-card--composite .se-palette-card-name, +.se-page--light .se-palette-panel .se-palette-card.se-palette-card--range .se-palette-card-name, +.se-page--light .se-palette-panel .se-palette-card.se-palette-card--range-include .se-palette-card-name, +.se-page--light .se-palette-panel .se-palette-card.se-palette-card--range-exclude .se-palette-card-name { + text-shadow: none; +} + +.se-page--light .se-palette-panel .se-palette-card--band, +.se-page--light .se-palette-panel .se-palette-card--ind, +.se-page--light .se-palette-panel .se-palette-card--composite, +.se-page--light .se-palette-panel .se-palette-card.se-palette-card--range, +.se-page--light .se-palette-panel .se-palette-card.se-palette-card--range-include, +.se-page--light .se-palette-panel .se-palette-card.se-palette-card--range-exclude { + --se-palette-chip-caption: color-mix(in srgb, var(--se-text) 72%, #000 28%); + --se-palette-chip-period-value: color-mix(in srgb, var(--se-text) 88%, #000 12%); + --se-palette-chip-period-bg: color-mix(in srgb, var(--bg4, #f5f5f5) 80%, #fff 20%); + --se-palette-chip-period-border: color-mix(in srgb, var(--se-text-muted) 38%, transparent); +} + .se-palette-period-input { width: 36px; text-align: center; border: 1px solid var(--se-input-border); diff --git a/frontend/src/styles/strategyEditorTheme.css b/frontend/src/styles/strategyEditorTheme.css index aa39c01..ff6ce87 100644 --- a/frontend/src/styles/strategyEditorTheme.css +++ b/frontend/src/styles/strategyEditorTheme.css @@ -78,6 +78,10 @@ --se-palette-section-ind: #34d399; --se-palette-section-range: #f59e0b; --se-palette-strategy-name: #f59e0b; + --se-palette-chip-caption: color-mix(in srgb, var(--se-text-muted) 82%, #fff 18%); + --se-palette-chip-period-value: color-mix(in srgb, var(--se-text) 90%, #fff 10%); + --se-palette-chip-period-bg: color-mix(in srgb, #000 32%, transparent); + --se-palette-chip-period-border: color-mix(in srgb, var(--se-text-muted) 38%, transparent); --se-tab-active: var(--se-gold); --se-handle: var(--accent); --se-edge: color-mix(in srgb, var(--accent) 72%, transparent); @@ -218,6 +222,10 @@ --se-palette-section-ind: #2e7d32; --se-palette-section-range: #e65100; --se-palette-strategy-name: #e65100; + --se-palette-chip-caption: color-mix(in srgb, var(--se-text) 78%, #000 22%); + --se-palette-chip-period-value: color-mix(in srgb, var(--se-text) 92%, #000 8%); + --se-palette-chip-period-bg: color-mix(in srgb, var(--bg4, #f5f5f5) 75%, #fff 25%); + --se-palette-chip-period-border: color-mix(in srgb, var(--se-text-muted) 42%, transparent); --vtd-sig-gold-text: color-mix(in srgb, var(--se-gold) 88%, #212121); --vtd-sig-panel-bg: color-mix(in srgb, var(--se-gold) 5%, #ffffff); @@ -283,6 +291,10 @@ --se-palette-section-ind: #69f0ae; --se-palette-section-range: #ffb74d; --se-palette-strategy-name: #ffb74d; + --se-palette-chip-caption: color-mix(in srgb, var(--se-text-muted) 80%, #fff 20%); + --se-palette-chip-period-value: color-mix(in srgb, var(--se-text) 88%, #fff 12%); + --se-palette-chip-period-bg: color-mix(in srgb, #000 30%, transparent); + --se-palette-chip-period-border: color-mix(in srgb, var(--se-text-muted) 36%, transparent); } /* Light theme — flow node & handle tweaks */