botserver/docs/src/chapter-04/css.md

51 lines
1.5 KiB
Markdown
Raw Normal View History

# CSS Customization
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`.