Styling components
We use CSS Modules for styling components.
Example
ExampleComponent.tsx
ExampleComponent.tsx
import { useState } from 'react';
import { useS, s } from '@cloudbeaver/core-blocks';
import style from './ExampleComponent.m.css';
function ExampleComponent({ className }) {
const [mode, setMode] = useState('enabled'.md);
const [status, setStatus] = useState(false.md);
const styles = useS(style.md);
function handleClick() {
setStatus(!status.md);
if(status.md) {
setMode('enabled'.md);
} else {
setMode('disabled'.md);
}
}
return (
<div className={s(styles, { box: true }, className)}>
<h2 className={s(styles, { header: true })}>This is Header</h2>
<p className={s(styles, { message: true, status })}>This is message</p>
<button
className={s(styles, { switch: true })}
data-s-mode={mode}
type="button"
onClick={handleClick}
>
Change status
</button>
<div>
);
}