From 769c124ff54960ac9db4f9028b095c1385cd3961 Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Fri, 1 Apr 2022 11:43:38 +0200 Subject: chore: add a computer screen icon component --- .../atoms/icons/computer-screen.module.scss | 39 ++++++++++++ .../atoms/icons/computer-screen.stories.tsx | 13 ++++ .../atoms/icons/computer-screen.test.tsx | 9 +++ src/components/atoms/icons/computer-screen.tsx | 72 ++++++++++++++++++++++ 4 files changed, 133 insertions(+) create mode 100644 src/components/atoms/icons/computer-screen.module.scss create mode 100644 src/components/atoms/icons/computer-screen.stories.tsx create mode 100644 src/components/atoms/icons/computer-screen.test.tsx create mode 100644 src/components/atoms/icons/computer-screen.tsx (limited to 'src') diff --git a/src/components/atoms/icons/computer-screen.module.scss b/src/components/atoms/icons/computer-screen.module.scss new file mode 100644 index 0000000..6c8f701 --- /dev/null +++ b/src/components/atoms/icons/computer-screen.module.scss @@ -0,0 +1,39 @@ +@use "@styles/abstracts/functions" as fun; + +.icon { + display: block; + width: var(--icon-size, #{fun.convert-px(40)}); +} + +.root, +.separator, +.cursor, +.line, +.text { + fill: var(--color-fg); +} + +.stand { + fill: var(--color-primary-lighter); + stroke: var(--color-primary-dark); + + &--top { + stroke-width: 3; + } + + &--bottom { + stroke-width: 2; + } +} + +.screen { + fill: var(--color-bg); + stroke: var(--color-primary-dark); + stroke-width: 3; +} + +.contour { + fill: var(--color-primary-lighter); + stroke: var(--color-primary-dark); + stroke-width: 3; +} diff --git a/src/components/atoms/icons/computer-screen.stories.tsx b/src/components/atoms/icons/computer-screen.stories.tsx new file mode 100644 index 0000000..317b4b6 --- /dev/null +++ b/src/components/atoms/icons/computer-screen.stories.tsx @@ -0,0 +1,13 @@ +import { ComponentMeta, ComponentStory } from '@storybook/react'; +import ComputerScreenIcon from './computer-screen'; + +export default { + title: 'Atoms/Icons', + component: ComputerScreenIcon, +} as ComponentMeta; + +const Template: ComponentStory = (args) => ( + +); + +export const ComputerScreen = Template.bind({}); diff --git a/src/components/atoms/icons/computer-screen.test.tsx b/src/components/atoms/icons/computer-screen.test.tsx new file mode 100644 index 0000000..c0e53e0 --- /dev/null +++ b/src/components/atoms/icons/computer-screen.test.tsx @@ -0,0 +1,9 @@ +import { render } from '@test-utils'; +import ComputerScreen from './computer-screen'; + +describe('ComputerScreen', () => { + it('renders a computer screen icon', () => { + const { container } = render(); + expect(container).toBeDefined(); + }); +}); diff --git a/src/components/atoms/icons/computer-screen.tsx b/src/components/atoms/icons/computer-screen.tsx new file mode 100644 index 0000000..c9c869d --- /dev/null +++ b/src/components/atoms/icons/computer-screen.tsx @@ -0,0 +1,72 @@ +import { FC } from 'react'; +import styles from './computer-screen.module.scss'; + +/** + * ComputerScreen component + * + * Render a computer screen svg icon. + */ +const ComputerScreen: FC = () => { + return ( + + + + + + + + + + + + + + + + ); +}; + +export default ComputerScreen; -- cgit v1.2.3