From 2a125d9432148e48e5da2e38f206e0a23c967e4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Mon, 30 Dec 2024 13:09:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B8=83=E5=B1=80Scheme=E7=9A=84=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E5=B1=95=E7=A4=BA=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scheme/SchemeContent.module.css | 25 ++++++++ src/page-components/scheme/SchemeContent.tsx | 61 +++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 src/page-components/scheme/SchemeContent.module.css create mode 100644 src/page-components/scheme/SchemeContent.tsx diff --git a/src/page-components/scheme/SchemeContent.module.css b/src/page-components/scheme/SchemeContent.module.css new file mode 100644 index 0000000..e5035eb --- /dev/null +++ b/src/page-components/scheme/SchemeContent.module.css @@ -0,0 +1,25 @@ +@layer pages { + .scheme_content { + flex: 1; + overflow-y: auto; + display: flex; + flex-direction: column; + gap: var(--spacing-m); + } + .series_row { + display: flex; + flex-direction: column; + gap: var(--spacing-s); + h4 { + padding-block: var(--spacing-xs); + font-size: var(--font-size-l); + } + ul { + display: flex; + flex-direction: row; + justify-content: flex-start; + flex-wrap: wrap; + gap: var(--spacing-l); + } + } +} diff --git a/src/page-components/scheme/SchemeContent.tsx b/src/page-components/scheme/SchemeContent.tsx new file mode 100644 index 0000000..440b195 --- /dev/null +++ b/src/page-components/scheme/SchemeContent.tsx @@ -0,0 +1,61 @@ +import { isArray } from 'lodash-es'; +import { ColorStand } from '../../components/ColorStand'; +import { SchemeSet } from '../../stores/schemes'; +import styles from './SchemeContent.module.css'; + +type ColorSeriesProps = { + title: string; + series: SchemeSet['lightScheme' | 'darkScheme']['primary']; + simpleSeries?: boolean; +}; + +function ColorSeries({ title, series, simpleSeries = false }: ColorSeriesProps) { + return ( +
+

{title}

+ +
+ ); +} + +type SchemeContentProps = { + scheme: SchemeSet['lightScheme' | 'darkScheme']; +}; + +export function SchemeContent({ scheme }: SchemeContentProps) { + return ( +
+ + + + {isArray(scheme.secondary) ? ( + scheme.secondary.map((cSet, index) => ( + + )) + ) : ( + + )} + + + + + + +
+ ); +}