summaryrefslogtreecommitdiffstats
path: root/src/components/Form/Label
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/Form/Label')
-rw-r--r--src/components/Form/Label/Label.module.scss22
-rw-r--r--src/components/Form/Label/Label.tsx24
2 files changed, 46 insertions, 0 deletions
diff --git a/src/components/Form/Label/Label.module.scss b/src/components/Form/Label/Label.module.scss
new file mode 100644
index 0000000..c527b16
--- /dev/null
+++ b/src/components/Form/Label/Label.module.scss
@@ -0,0 +1,22 @@
+@use "@styles/abstracts/functions" as fun;
+
+.regular {
+ display: block;
+ color: var(--color-primary-darker);
+ font-size: var(--font-size-sm);
+ font-variant: small-caps;
+ font-weight: 600;
+}
+
+.settings {
+ --icon-size: #{fun.convert-px(25)};
+ --toggle-width: #{fun.convert-px(45)};
+ --toggle-height: calc(var(--toggle-width) / 2);
+
+ display: inline-flex;
+ align-items: center;
+}
+
+.required {
+ color: var(--color-secondary);
+}
diff --git a/src/components/Form/Label/Label.tsx b/src/components/Form/Label/Label.tsx
new file mode 100644
index 0000000..baedff0
--- /dev/null
+++ b/src/components/Form/Label/Label.tsx
@@ -0,0 +1,24 @@
+import styles from './Label.module.scss';
+
+type LabelKind = 'regular' | 'settings';
+
+const Label = ({
+ body,
+ htmlFor,
+ required = false,
+ kind = 'regular',
+}: {
+ body: string;
+ htmlFor: string;
+ required?: boolean;
+ kind?: LabelKind;
+}) => {
+ return (
+ <label htmlFor={htmlFor} className={styles[kind]}>
+ {body}
+ {required && <span className={styles.required}> *</span>}
+ </label>
+ );
+};
+
+export default Label;