diff --git a/src/primitive-components/badge/badges.types.ts b/src/primitive-components/badge/badges.types.ts
index 817560f..c0eaace 100644
--- a/src/primitive-components/badge/badges.types.ts
+++ b/src/primitive-components/badge/badges.types.ts
@@ -1,5 +1,6 @@
-import { PropsWithChildren } from 'react';
+import { SVGProps } from 'react';
 
-export interface BadgeProps extends PropsWithChildren<any> {
+export interface BadgeProps extends SVGProps<SVGSVGElement> {
+    children?: string | undefined;
     disableValue?: boolean;
 }
diff --git a/src/primitive-components/button-layout/button-layout.types.ts b/src/primitive-components/button-layout/button-layout.types.ts
new file mode 100644
index 0000000..84488b7
--- /dev/null
+++ b/src/primitive-components/button-layout/button-layout.types.ts
@@ -0,0 +1,6 @@
+import { ButtonHTMLAttributes } from 'react';
+import { IRippleProps } from '../ripple/ripple.types';
+
+export interface ButtonLayoutProps
+    extends IRippleProps,
+        ButtonHTMLAttributes<HTMLButtonElement> {}
diff --git a/src/primitive-components/button-layout/button.types.ts b/src/primitive-components/button-layout/button.types.ts
deleted file mode 100644
index 5a38760..0000000
--- a/src/primitive-components/button-layout/button.types.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { PropsWithChildren } from 'react';
-
-type ToggleButtonType = {
-    selected: string;
-    unselected: string;
-};
-
-export interface ButtonMainProps extends PropsWithChildren<any> {
-    disabled?: boolean;
-    variant?: 'filled' | 'outlined' | 'elevated' | 'tonal' | 'text';
-}
-
-export interface FABMainProps extends PropsWithChildren<any> {
-    icon: string;
-    disabled?: boolean;
-    size?: 'small' | 'default' | 'large' | 'extended';
-    variant?: 'surface' | 'primary' | 'secondary' | 'tertiary';
-}
-
-export interface IconButtonMainProps extends PropsWithChildren<any> {
-    icon: string;
-    toggled?: false | ToggleButtonType;
-    disabled?: boolean;
-    variant?: 'default' | 'filled' | 'tonal' | 'outlined';
-}
diff --git a/src/primitive-components/button/button.types.ts b/src/primitive-components/button/button.types.ts
new file mode 100644
index 0000000..e4fd1b8
--- /dev/null
+++ b/src/primitive-components/button/button.types.ts
@@ -0,0 +1,10 @@
+import { ButtonHTMLAttributes } from 'react';
+import { IRippleProps } from '../ripple/ripple.types';
+
+export interface ButtonMainProps
+    extends ButtonHTMLAttributes<HTMLButtonElement> {
+    disabled?: boolean;
+    variant?: 'filled' | 'outlined' | 'elevated' | 'tonal' | 'text';
+}
+
+export interface ButtonProps extends IRippleProps, ButtonMainProps {}
diff --git a/src/primitive-components/checkbox-layout/checkbox-layout.types.ts b/src/primitive-components/checkbox-layout/checkbox-layout.types.ts
index f001170..5c02c43 100644
--- a/src/primitive-components/checkbox-layout/checkbox-layout.types.ts
+++ b/src/primitive-components/checkbox-layout/checkbox-layout.types.ts
@@ -1,6 +1,7 @@
-import { PropsWithChildren } from 'react';
+import { InputHTMLAttributes } from 'react';
 
-export interface CheckboxLayoutProps extends PropsWithChildren<any> {
+export interface CheckboxLayoutProps
+    extends InputHTMLAttributes<HTMLInputElement> {
     indeterminate?: boolean;
     typeInput?: string;
     type?: string;
diff --git a/src/primitive-components/checkbox/checkbox.types.ts b/src/primitive-components/checkbox/checkbox.types.ts
new file mode 100644
index 0000000..fd0b6a6
--- /dev/null
+++ b/src/primitive-components/checkbox/checkbox.types.ts
@@ -0,0 +1,6 @@
+import { InputHTMLAttributes } from 'react';
+import { IRippleProps } from '../ripple/ripple.types';
+
+export interface CheckboxProps
+    extends InputHTMLAttributes<HTMLInputElement>,
+        IRippleProps {}
diff --git a/src/primitive-components/divider/divider.types.ts b/src/primitive-components/divider/divider.types.ts
new file mode 100644
index 0000000..4814f85
--- /dev/null
+++ b/src/primitive-components/divider/divider.types.ts
@@ -0,0 +1,6 @@
+import { HTMLAttributes } from 'react';
+
+export interface DividerProps extends HTMLAttributes<HTMLHRElement> {
+    orientation?: 'vertical' | 'horizontal';
+    variant?: 'full-width' | 'inset' | 'middle-inset';
+}
diff --git a/src/primitive-components/fab/fab.types.ts b/src/primitive-components/fab/fab.types.ts
new file mode 100644
index 0000000..6d7102c
--- /dev/null
+++ b/src/primitive-components/fab/fab.types.ts
@@ -0,0 +1,12 @@
+import React from 'react';
+import { IRippleProps } from '../ripple/ripple.types';
+
+export interface FABMainProps
+    extends React.ButtonHTMLAttributes<HTMLButtonElement> {
+    icon: string;
+    disabled?: boolean;
+    size?: 'small' | 'default' | 'large' | 'extended';
+    variant?: 'surface' | 'primary' | 'secondary' | 'tertiary';
+}
+
+export interface FABProps extends FABMainProps, IRippleProps {}
diff --git a/src/primitive-components/icon-button/icon-button.types.ts b/src/primitive-components/icon-button/icon-button.types.ts
index e67d69a..a335b5c 100644
--- a/src/primitive-components/icon-button/icon-button.types.ts
+++ b/src/primitive-components/icon-button/icon-button.types.ts
@@ -1,4 +1,22 @@
-export type toggleIconType = {
+import React from 'react';
+import { IRippleProps } from '../ripple/ripple.types';
+
+export type StateToggleIconType = {
     state: string;
     icon: string;
 };
+
+export type ToggleButtonType = {
+    selected: string;
+    unselected: string;
+};
+
+export interface IconButtonMainProps
+    extends React.ButtonHTMLAttributes<HTMLButtonElement> {
+    icon: string;
+    toggled?: false | ToggleButtonType;
+    disabled?: boolean;
+    variant?: 'default' | 'filled' | 'tonal' | 'outlined';
+}
+
+export interface IconButtonProps extends IconButtonMainProps, IRippleProps {}
diff --git a/src/primitive-components/icon/icon.types.ts b/src/primitive-components/icon/icon.types.ts
index c4d7bd2..4121579 100644
--- a/src/primitive-components/icon/icon.types.ts
+++ b/src/primitive-components/icon/icon.types.ts
@@ -1,11 +1,12 @@
-import { PropsWithChildren } from 'react';
+import { SVGProps } from 'react';
 
-export interface IconProps extends PropsWithChildren<any> {
-    fill?: boolean;
+export interface IconProps extends SVGProps<SVGSVGElement> {
     grade?: number;
     svgSize?: number;
+    fillIcon?: 0 | 1;
     iconSize?: number;
     opticalSize?: number;
+    children?: string | undefined;
     type?: 'outlined' | 'rounded' | 'sharp';
     weight?: 100 | 200 | 300 | 400 | 500 | 600 | 700;
 }
diff --git a/src/primitive-components/radio/radio.types.ts b/src/primitive-components/radio/radio.types.ts
new file mode 100644
index 0000000..b8a9531
--- /dev/null
+++ b/src/primitive-components/radio/radio.types.ts
@@ -0,0 +1,8 @@
+import { InputHTMLAttributes } from 'react';
+import { IRippleProps } from '../ripple/ripple.types';
+
+export interface RadioProps
+    extends InputHTMLAttributes<HTMLInputElement>,
+        IRippleProps {
+    centralRipple?: boolean;
+}
diff --git a/src/primitive-components/switch/switch.types.ts b/src/primitive-components/switch/switch.types.ts
index 875a0f0..3094d93 100644
--- a/src/primitive-components/switch/switch.types.ts
+++ b/src/primitive-components/switch/switch.types.ts
@@ -1,6 +1,6 @@
-import { PropsWithChildren } from 'react';
+import { InputHTMLAttributes } from 'react';
 
-export interface SwitchMainProps extends PropsWithChildren<any> {
+export interface SwitchMainProps extends InputHTMLAttributes<HTMLInputElement> {
     disabled?: boolean;
     icon?: boolean;
     selected?: boolean;
diff --git a/src/primitive-components/text-field/text-field.types.ts b/src/primitive-components/text-field/text-field.types.ts
index 4147a93..3ed3d6a 100644
--- a/src/primitive-components/text-field/text-field.types.ts
+++ b/src/primitive-components/text-field/text-field.types.ts
@@ -1,6 +1,7 @@
-import { PropsWithChildren } from 'react';
+import { InputHTMLAttributes } from 'react';
 
-export interface TextFieldInterface extends PropsWithChildren<any> {
+export interface TextFieldInterface
+    extends InputHTMLAttributes<HTMLInputElement> {
     variant: 'filled' | 'outlined';
     withAfterIcon?: boolean;
     withBeforeIcon?: boolean;