summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2022-03-31 23:04:39 +0200
committerArmand Philippot <git@armandphilippot.com>2022-03-31 23:04:39 +0200
commit82b70a23bc8fabedc8333f5063a858f7e90f253f (patch)
tree084908eb606b00bad34160b5924a56b77394e31e /src
parentda9f0895bddd9385c1026715ac1b5e63594932eb (diff)
chore: add a Moon icon component
Diffstat (limited to 'src')
-rw-r--r--src/components/atoms/icons/moon.module.scss8
-rw-r--r--src/components/atoms/icons/moon.stories.tsx13
-rw-r--r--src/components/atoms/icons/moon.test.tsx9
-rw-r--r--src/components/atoms/icons/moon.tsx21
4 files changed, 51 insertions, 0 deletions
diff --git a/src/components/atoms/icons/moon.module.scss b/src/components/atoms/icons/moon.module.scss
new file mode 100644
index 0000000..e0b53d6
--- /dev/null
+++ b/src/components/atoms/icons/moon.module.scss
@@ -0,0 +1,8 @@
+@use "@styles/abstracts/functions" as fun;
+
+.icon {
+ fill: var(--color-primary-lighter);
+ stroke: var(--color-primary-darker);
+ stroke-width: 4;
+ width: var(--icon-size, #{fun.convert-px(25)});
+}
diff --git a/src/components/atoms/icons/moon.stories.tsx b/src/components/atoms/icons/moon.stories.tsx
new file mode 100644
index 0000000..393744b
--- /dev/null
+++ b/src/components/atoms/icons/moon.stories.tsx
@@ -0,0 +1,13 @@
+import { ComponentMeta, ComponentStory } from '@storybook/react';
+import MoonIcon from './moon';
+
+export default {
+ title: 'Atoms/Icons',
+ component: MoonIcon,
+} as ComponentMeta<typeof MoonIcon>;
+
+const Template: ComponentStory<typeof MoonIcon> = (args) => (
+ <MoonIcon {...args} />
+);
+
+export const Moon = Template.bind({});
diff --git a/src/components/atoms/icons/moon.test.tsx b/src/components/atoms/icons/moon.test.tsx
new file mode 100644
index 0000000..1c96303
--- /dev/null
+++ b/src/components/atoms/icons/moon.test.tsx
@@ -0,0 +1,9 @@
+import { render } from '@test-utils';
+import Moon from './moon';
+
+describe('Moon', () => {
+ it('renders a moon icon', () => {
+ const { container } = render(<Moon />);
+ expect(container).toBeDefined();
+ });
+});
diff --git a/src/components/atoms/icons/moon.tsx b/src/components/atoms/icons/moon.tsx
new file mode 100644
index 0000000..82b0ef6
--- /dev/null
+++ b/src/components/atoms/icons/moon.tsx
@@ -0,0 +1,21 @@
+import { FC } from 'react';
+import styles from './moon.module.scss';
+
+type MoonProps = {
+ title?: string;
+};
+
+const Moon: FC<MoonProps> = ({ title }) => {
+ return (
+ <svg
+ className={styles.icon}
+ viewBox="0 0 100 100"
+ xmlns="http://www.w3.org/2000/svg"
+ >
+ {title !== 'undefined' && <title>{title}</title>}
+ <path d="M 51.077315,1.9893942 A 43.319985,43.319985 0 0 1 72.840039,39.563145 43.319985,43.319985 0 0 1 29.520053,82.88313 43.319985,43.319985 0 0 1 5.4309911,75.569042 48.132997,48.132997 0 0 0 46.126047,98 48.132997,48.132997 0 0 0 94.260004,49.867002 48.132997,48.132997 0 0 0 51.077315,1.9893942 Z" />
+ </svg>
+ );
+};
+
+export default Moon;