2025-10-25 14:50:14 -03:00
|
|
|
|
# CSS Customization
|
2025-10-25 15:59:06 -03:00
|
|
|
|
|
|
|
|
|
|
The **gbtheme** CSS files define the visual style of the bot UI. They are split into three layers to make them easy to extend.
|
|
|
|
|
|
|
|
|
|
|
|
## Files
|
|
|
|
|
|
|
|
|
|
|
|
| File | Role |
|
|
|
|
|
|
|------|------|
|
|
|
|
|
|
| `main.css` | Core layout, typography, and global variables. |
|
|
|
|
|
|
| `components.css` | Styles for reusable UI components (buttons, cards, modals). |
|
|
|
|
|
|
| `responsive.css` | Media queries for mobile, tablet, and desktop breakpoints. |
|
|
|
|
|
|
|
|
|
|
|
|
## CSS Variables (in `main.css`)
|
|
|
|
|
|
|
|
|
|
|
|
```css
|
|
|
|
|
|
:root {
|
|
|
|
|
|
--primary-color: #2563eb;
|
|
|
|
|
|
--secondary-color: #64748b;
|
|
|
|
|
|
--background-color: #ffffff;
|
|
|
|
|
|
--text-color: #1e293b;
|
|
|
|
|
|
--border-radius: 8px;
|
|
|
|
|
|
--spacing-unit: 8px;
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Changing a variable updates the entire theme without editing individual rules.
|
|
|
|
|
|
|
|
|
|
|
|
## Extending the Theme
|
|
|
|
|
|
|
|
|
|
|
|
1. **Add a new variable** – Append to `:root` and reference it in any selector.
|
|
|
|
|
|
2. **Override a component** – Duplicate the selector in `components.css` after the original definition; the later rule wins.
|
|
|
|
|
|
3. **Create a dark mode** – Add a `@media (prefers-color-scheme: dark)` block that redefines the variables.
|
|
|
|
|
|
|
|
|
|
|
|
```css
|
|
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
|
|
|
|
:root {
|
|
|
|
|
|
--primary-color: #3b82f6;
|
|
|
|
|
|
--background-color: #111827;
|
|
|
|
|
|
--text-color: #f9fafb;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## Best Practices
|
|
|
|
|
|
|
|
|
|
|
|
* Keep the file size small – avoid large image data URIs; store images in `assets/`.
|
|
|
|
|
|
* Use `rem` units for font sizes; they scale with the root `font-size`.
|
|
|
|
|
|
* Limit the depth of nesting; flat selectors improve performance.
|
|
|
|
|
|
|
|
|
|
|
|
All CSS files are loaded in `index.html` in the order: `main.css`, `components.css`, `responsive.css`.
|