blueprint/docs/styling.md
2025-01-21 14:00:09 +01:00

233 lines
No EOL
5.7 KiB
Markdown

# Blueprint Styling Guide
Blueprint provides a comprehensive styling system that ensures consistent, beautiful dark-themed UIs. This guide covers all available styling properties and how to use them effectively.
## Style Properties
### Layout Properties
#### Spacing and Sizing
- `wide`: Full width with max-width constraint (1200px)
- `compact`: Reduced padding (0.75rem)
- `spaced`: Space between items (gap: 1.5rem)
- `gap`: Custom gap size between items
- `width`: Custom width in percentage
- `height`: Custom height in percentage
- `padding`: Custom padding in pixels
- `margin`: Custom margin in pixels
#### Positioning
- `centered`: Center content horizontally and vertically
- `sticky`: Fixed position at top with blur backdrop
- `fixed`: Fixed position
- `relative`: Relative positioning
- `absolute`: Absolute positioning
#### Display and Flex
- `horizontal`: Horizontal flex layout with 1.5rem gap
- `vertical`: Vertical flex layout with 1.5rem gap
- `grid`: Grid layout with auto-fit columns
- `responsive`: Enable responsive wrapping
- `hidden`: Hide element
- `visible`: Show element
### Typography Properties
#### Text Size
- `huge`: Very large text (clamp(2.5rem, 5vw, 4rem))
- `large`: Large text (clamp(1.5rem, 3vw, 2rem))
- `small`: Small text (0.875rem)
- `tiny`: Very small text (0.75rem)
#### Text Weight
- `bold`: Bold weight (600)
- `light`: Light weight
- `normal`: Normal weight
#### Text Style
- `italic`: Italic text
- `underline`: Underlined text
- `strike`: Strikethrough text
- `uppercase`: All uppercase
- `lowercase`: All lowercase
- `capitalize`: Capitalize first letter
#### Text Color
- `subtle`: Muted text color (#8b949e)
- `accent`: Accent color text (#3b82f6)
- `error`: Error color text
- `success`: Success color text
- `warning`: Warning color text
- Custom colors using `color:value`
### Component Styles
#### Button Styles
- `prominent`: Primary button style
- Background: #3b82f6
- Hover: Scale up and glow
- `secondary`: Secondary button style
- Background: #1f2937
- Hover: Slight raise
- `light`: Light button style
- Background: Transparent
- Border: 1px solid rgba(48, 54, 61, 0.6)
- `compact`: Compact button style
- Padding: 0.75rem
- Border-radius: 12px
#### Card Styles
- `raised`: Card with hover effect
- Background: #111827
- Border: 1px solid rgba(48, 54, 61, 0.6)
- Hover: Raise and glow
- `interactive`: Interactive card style
- Hover: Scale and border color change
#### Input Styles
- `input`: Standard input style
- Background: #111827
- Border: 1px solid rgba(48, 54, 61, 0.6)
- Focus: Blue glow
- `textarea`: Textarea style
- Min-height: 120px
- Resize: vertical
- `select`: Select input style
- Custom dropdown arrow
- Focus: Blue glow
- `checkbox`: Checkbox style
- Custom checkmark
- Hover: Blue border
- `radio`: Radio button style
- Custom radio dot
- Hover: Blue border
- `switch`: Toggle switch style
- Animated toggle
- Checked: Blue background
### Interactive States
#### Hover Effects
```blueprint
button(hover-scale) { "Scale on Hover" }
link(hover-underline) { "Underline on Hover" }
card(hover-raise) { "Raise on Hover" }
```
Available hover properties:
- `hover-scale`: Scale up on hover (1.1)
- `hover-raise`: Raise with shadow
- `hover-glow`: Glow effect
- `hover-underline`: Underline on hover
- `hover-fade`: Fade effect
#### Focus States
```blueprint
input(focus-glow) { }
button(focus-outline) { "Click me" }
```
Available focus properties:
- `focus-glow`: Blue glow effect
- `focus-outline`: Blue outline
- `focus-scale`: Scale effect
#### Active States
```blueprint
button(active-scale) { "Click me" }
link(active-color) { "Click me" }
```
Available active properties:
- `active-scale`: Scale down
- `active-color`: Color change
- `active-raise`: Raise effect
### Responsive Design
#### Breakpoints
Blueprint automatically handles responsive design, but you can use specific properties:
```blueprint
section(mobile-stack) {
horizontal(tablet-wrap) {
card(desktop-wide) { }
card(desktop-wide) { }
}
}
```
Available responsive properties:
- `mobile-stack`: Stack elements on mobile
- `mobile-hide`: Hide on mobile
- `tablet-wrap`: Wrap on tablet
- `tablet-hide`: Hide on tablet
- `desktop-wide`: Full width on desktop
- `desktop-hide`: Hide on desktop
#### Grid System
The grid system automatically adjusts based on screen size:
```blueprint
grid(columns:3, responsive) {
card { }
card { }
card { }
}
```
### Custom Properties
#### Direct Style Properties
You can use these properties directly:
- `width`: Set width in percentage (e.g., width:80)
- `height`: Set height in percentage (e.g., height:50)
- `padding`: Set padding in pixels (e.g., padding:20)
- `margin`: Set margin in pixels (e.g., margin:10)
- `color`: Set text color (e.g., color:#ffffff)
- `backgroundColor`: Set background color (e.g., backgroundColor:#000000)
### Theme Variables
Blueprint uses CSS variables for consistent theming:
```css
:root {
--navbar-height: 4rem;
--primary-color: #3b82f6;
--secondary-color: #1f2937;
--text-color: #e6edf3;
--subtle-color: #8b949e;
--border-color: rgba(48, 54, 61, 0.6);
--background-color: #0d1117;
--hover-color: rgba(255, 255, 255, 0.1);
}
```
### Best Practices
1. **Consistency**
- Use predefined properties when possible
- Maintain consistent spacing
- Follow the color theme
- Use semantic styles
2. **Responsive Design**
- Test at all breakpoints
- Use relative units
- Consider mobile-first
- Use grid and flex layouts
3. **Performance**
- Minimize custom styles
- Use system properties
- Avoid deep nesting
- Optimize animations
4. **Accessibility**
- Maintain color contrast
- Use semantic markup
- Consider focus states
- Test with screen readers
```
</rewritten_file>