CSS in JS allows defining styles for React components using JavaScript objects and functions instead of traditional CSS files. Styles can be defined as JavaScript objects and applied to components using the style prop. This avoids issues with CSS specificity, scoping, and separation of technologies. Styles defined in JS are also minified and cached by React for improved performance. Frameworks like Aphrodite provide an API for defining styles in JS and conditionally applying styles based on media queries and pseudo-classes for both React web and native applications.