From 47ca0ca6d7f62c50137e64cf0c0f89cb604e7e6d Mon Sep 17 00:00:00 2001 From: mhpei Date: Fri, 17 May 2024 17:22:19 +0800 Subject: [PATCH 1/5] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=9A=97=E5=A4=9C=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/taro-ui-docs/app.jsx | 23 ++++- packages/taro-ui-docs/assets/dark.svg | 1 + packages/taro-ui-docs/assets/light.svg | 1 + packages/taro-ui-docs/assets/style/dark.scss | 27 ++++++ packages/taro-ui-docs/assets/style/docs.scss | 4 + .../taro-ui-docs/components/header/index.jsx | 93 +++++++++++++++++-- .../taro-ui-docs/components/header/style.scss | 34 ++++++- .../taro-ui-docs/components/sidebar/index.jsx | 13 +-- .../components/sidebar/style.scss | 9 ++ packages/taro-ui-docs/lib/default.scss | 4 +- packages/taro-ui-docs/pages/docs.jsx | 44 ++++++--- packages/taro-ui-docs/utils/const.js | 1 + 12 files changed, 222 insertions(+), 32 deletions(-) create mode 100644 packages/taro-ui-docs/assets/dark.svg create mode 100644 packages/taro-ui-docs/assets/light.svg create mode 100644 packages/taro-ui-docs/assets/style/dark.scss create mode 100644 packages/taro-ui-docs/utils/const.js diff --git a/packages/taro-ui-docs/app.jsx b/packages/taro-ui-docs/app.jsx index ce31a1644..a74b87c43 100644 --- a/packages/taro-ui-docs/app.jsx +++ b/packages/taro-ui-docs/app.jsx @@ -12,12 +12,15 @@ class App extends React.Component { constructor(...args) { super(...args) this.state = { - visible: false + visible: false, + mode: 'light', } } componentDidMount() { + const _mode = localStorage.getItem('mode') this.setState({ - visible: true + visible: true, + mode: _mode || 'light', }) } @@ -25,12 +28,24 @@ class App extends React.Component { return true } + handleMode() { + const _mode = this.state.mode + const modeVal = _mode === 'light' ? 'dark' : 'light' + this.setState({ + mode: modeVal + }, () => { + localStorage.setItem('mode', modeVal) + }) + } + render() { + const { mode } = this.state + return ( -
+
- + } />
diff --git a/packages/taro-ui-docs/assets/dark.svg b/packages/taro-ui-docs/assets/dark.svg new file mode 100644 index 000000000..da13b504c --- /dev/null +++ b/packages/taro-ui-docs/assets/dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/taro-ui-docs/assets/light.svg b/packages/taro-ui-docs/assets/light.svg new file mode 100644 index 000000000..babe88e9f --- /dev/null +++ b/packages/taro-ui-docs/assets/light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/taro-ui-docs/assets/style/dark.scss b/packages/taro-ui-docs/assets/style/dark.scss new file mode 100644 index 000000000..5546a4346 --- /dev/null +++ b/packages/taro-ui-docs/assets/style/dark.scss @@ -0,0 +1,27 @@ +h1, h2, h3, h4, h5, h6 { + color: #fff; +} + +.dark-style-docs-20140517 { + color: '#fff'; +} + +p { + color: #fff; +} + +li { + color: #fff; +} + +code { + color: #3F536E; +} + +span { + color: #3F536E; +} + +a { + color: #fff; +} \ No newline at end of file diff --git a/packages/taro-ui-docs/assets/style/docs.scss b/packages/taro-ui-docs/assets/style/docs.scss index 316db4a0a..df0258840 100644 --- a/packages/taro-ui-docs/assets/style/docs.scss +++ b/packages/taro-ui-docs/assets/style/docs.scss @@ -54,6 +54,10 @@ $drop-shadow: 0 4px 30px 0 rgba(223, 225, 230, 0.5); overflow: hidden; } +.darkbox { + background-color: #23272f; +} + /** * Component - Preview & Code sample */ diff --git a/packages/taro-ui-docs/components/header/index.jsx b/packages/taro-ui-docs/components/header/index.jsx index 154e2b63b..c7ff1f8d0 100644 --- a/packages/taro-ui-docs/components/header/index.jsx +++ b/packages/taro-ui-docs/components/header/index.jsx @@ -1,16 +1,40 @@ import React from 'react' import classnames from 'classnames' import { Link, NavLink, withRouter } from 'react-router-dom' +import { DARK_KEY_SINGLE } from '../../utils/const' import taroUILogo from '../../assets/logo-taro.png' +import darkImg from '../../assets/dark.svg' +import lightImg from '../../assets/light.svg' import './style.scss' class PageHeader extends React.Component { constructor(...args) { super(...args) this.state = { - toggle: true + toggle: true, + mode: 'light', } } + + componentDidMount() { + const _mode = localStorage.getItem('mode') + const style = localStorage.getItem('dark-style'); + const isCurrentStyle = style && ~style.indexOf(DARK_KEY_SINGLE) && !~style.indexOf(' { + if (~style.outerHTML.indexOf(DARK_KEY_SINGLE)) { + const newStyle = style.outerHTML.replace(/