From 395571bd89498fce46d37f3853cf718387fd0d9a Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Mon, 27 Dec 2021 11:20:26 +0100 Subject: chore: add a theme toggle Dark theme is not implemented yet. --- src/components/Icons/Moon/Moon.module.scss | 8 +++++ src/components/Icons/Moon/Moon.tsx | 15 ++++++++ src/components/Icons/Sun/Sun.module.scss | 8 +++++ src/components/Icons/Sun/Sun.tsx | 15 ++++++++ src/components/Icons/Theme/Theme.module.scss | 43 ++++++++++++++++++++++ src/components/Icons/Theme/Theme.tsx | 54 ++++++++++++++++++++++++++++ src/components/Icons/index.tsx | 6 ++++ 7 files changed, 149 insertions(+) create mode 100644 src/components/Icons/Moon/Moon.module.scss create mode 100644 src/components/Icons/Moon/Moon.tsx create mode 100644 src/components/Icons/Sun/Sun.module.scss create mode 100644 src/components/Icons/Sun/Sun.tsx create mode 100644 src/components/Icons/Theme/Theme.module.scss create mode 100644 src/components/Icons/Theme/Theme.tsx (limited to 'src/components/Icons') diff --git a/src/components/Icons/Moon/Moon.module.scss b/src/components/Icons/Moon/Moon.module.scss new file mode 100644 index 0000000..5912973 --- /dev/null +++ b/src/components/Icons/Moon/Moon.module.scss @@ -0,0 +1,8 @@ +@use "@styles/abstracts/functions" as fun; + +.moon { + fill: var(--color-primary-lighter); + stroke: var(--color-border); + stroke-width: 4; + width: var(--icon-size, #{fun.convert-px(25)}); +} diff --git a/src/components/Icons/Moon/Moon.tsx b/src/components/Icons/Moon/Moon.tsx new file mode 100644 index 0000000..b2e5f7b --- /dev/null +++ b/src/components/Icons/Moon/Moon.tsx @@ -0,0 +1,15 @@ +import styles from './Moon.module.scss'; + +const MoonIcon = () => { + return ( + + + + ); +}; + +export default MoonIcon; diff --git a/src/components/Icons/Sun/Sun.module.scss b/src/components/Icons/Sun/Sun.module.scss new file mode 100644 index 0000000..da2de89 --- /dev/null +++ b/src/components/Icons/Sun/Sun.module.scss @@ -0,0 +1,8 @@ +@use "@styles/abstracts/functions" as fun; + +.sun { + fill: var(--color-primary-lighter); + stroke: var(--color-border); + stroke-width: 4; + width: var(--icon-size, #{fun.convert-px(25)}); +} diff --git a/src/components/Icons/Sun/Sun.tsx b/src/components/Icons/Sun/Sun.tsx new file mode 100644 index 0000000..a4f5a11 --- /dev/null +++ b/src/components/Icons/Sun/Sun.tsx @@ -0,0 +1,15 @@ +import styles from './Sun.module.scss'; + +const SunIcon = () => { + return ( + + + + ); +}; + +export default SunIcon; diff --git a/src/components/Icons/Theme/Theme.module.scss b/src/components/Icons/Theme/Theme.module.scss new file mode 100644 index 0000000..e0ea24c --- /dev/null +++ b/src/components/Icons/Theme/Theme.module.scss @@ -0,0 +1,43 @@ +@use "@styles/abstracts/functions" as fun; + +.icon { + display: block; + margin: auto; + width: var(--icon-size, #{fun.convert-px(40)}); +} + +.roller { + fill: var(--color-primary-lighter); + stroke: var(--color-border); + stroke-width: 3; +} + +.guard { + fill: var(--color-primary); + stroke: var(--color-border); + stroke-width: 2; +} + +.handle { + fill: var(--color-primary-lighter); + stroke: var(--color-border); + stroke-width: 3; +} + +.bar { + fill: var(--color-bg); + stroke: var(--color-border); + stroke-width: 3; +} + +.colors { + fill: var(--color-primary-lighter); + stroke: var(--color-border); + stroke-width: 2; +} + +.palette { + fill: var(--color-bg); + stroke: var(--color-border); + stroke-width: 3; +} diff --git a/src/components/Icons/Theme/Theme.tsx b/src/components/Icons/Theme/Theme.tsx new file mode 100644 index 0000000..6b6c8d0 --- /dev/null +++ b/src/components/Icons/Theme/Theme.tsx @@ -0,0 +1,54 @@ +import styles from './Theme.module.scss'; + +const ThemeIcon = () => { + return ( + + + + + + + + + + + + + ); +}; + +export default ThemeIcon; diff --git a/src/components/Icons/index.tsx b/src/components/Icons/index.tsx index b32c3d3..9144619 100644 --- a/src/components/Icons/index.tsx +++ b/src/components/Icons/index.tsx @@ -4,7 +4,10 @@ import ContactIcon from './Contact/Contact'; import CVIcon from './CV/CV'; import HamburgerIcon from './Hamburger/Hamburger'; import HomeIcon from './Home/Home'; +import MoonIcon from './Moon/Moon'; import SearchIcon from './Search/Search'; +import SunIcon from './Sun/Sun'; +import ThemeIcon from './Theme/Theme'; export { BlogIcon, @@ -13,5 +16,8 @@ export { CVIcon, HamburgerIcon, HomeIcon, + MoonIcon, SearchIcon, + SunIcon, + ThemeIcon, }; -- cgit v1.2.3