fix: no weekends selected color
parent
cca9b10a45
commit
6cb241b5d2
@ -0,0 +1,219 @@
|
||||
# Calendar Component Usage Guide
|
||||
|
||||
## 🎨 Custom Color Schemes
|
||||
|
||||
### Basic Active Colors (Simple)
|
||||
For highlighting specific dates with custom colors:
|
||||
|
||||
```tsx
|
||||
import { Year, ActiveColors } from 'react-calendario';
|
||||
|
||||
const activeColors: ActiveColors = {
|
||||
headerBg: '#D4EDDA',
|
||||
headerColor: '#155724',
|
||||
contentBg: '#28A745',
|
||||
contentColor: '#FFFFFF'
|
||||
};
|
||||
|
||||
<Year
|
||||
year={2025}
|
||||
activeDates={[new Date(2025, 0, 1), new Date(2025, 11, 25)]}
|
||||
activeColors={activeColors}
|
||||
/>
|
||||
```
|
||||
|
||||
### Comprehensive Color Scheme (Advanced)
|
||||
Full control over colors for every state and day type:
|
||||
|
||||
```tsx
|
||||
import { Year, ColorScheme } from 'react-calendario';
|
||||
|
||||
const colorScheme: ColorScheme = [
|
||||
// Weekday colors
|
||||
{
|
||||
type: 'weekday',
|
||||
state: 'default', // Normal weekday
|
||||
colors: {
|
||||
header: { backgroundColor: '#2c3e50', color: '#ffffff' },
|
||||
content: { backgroundColor: '#ffffff', color: '#2c3e50' }
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'weekday',
|
||||
state: 'rangeStart', // First day of selected range
|
||||
colors: {
|
||||
header: { backgroundColor: '#2980b9', color: '#ffffff' },
|
||||
content: { backgroundColor: '#3498db', color: '#ffffff' }
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'weekday',
|
||||
state: 'rangeMid', // Middle days of selected range
|
||||
colors: {
|
||||
header: { backgroundColor: '#5dade2', color: '#ffffff' },
|
||||
content: { backgroundColor: '#aed6f1', color: '#1a5490' }
|
||||
}
|
||||
},
|
||||
|
||||
// Weekend colors
|
||||
{
|
||||
type: 'weekend',
|
||||
state: 'default', // Normal weekend
|
||||
colors: {
|
||||
header: { backgroundColor: '#7f8c8d', color: '#ffffff' },
|
||||
content: { backgroundColor: '#ecf0f1', color: '#34495e' }
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'weekend',
|
||||
state: 'rangeStart', // Weekend that starts a range
|
||||
colors: {
|
||||
header: { backgroundColor: '#2980b9', color: '#ffffff' },
|
||||
content: { backgroundColor: '#3498db', color: '#ffffff' }
|
||||
}
|
||||
},
|
||||
// ... more states
|
||||
];
|
||||
|
||||
<Year
|
||||
year={2025}
|
||||
colorScheme={colorScheme}
|
||||
/>
|
||||
```
|
||||
|
||||
#### Available States:
|
||||
- `default` - Normal day appearance
|
||||
- `selected` - Day is part of a completed selection (deprecated, use `rangeMid`)
|
||||
- `selecting` - Day is being hovered during selection (important for weekends!)
|
||||
- `rangeStart` - First day of a range
|
||||
- `rangeEnd` - Last day of a range
|
||||
- `rangeMid` - Middle days of a selected range
|
||||
- `active` - Special highlighted days (holidays, events)
|
||||
|
||||
#### Day Types:
|
||||
- `weekday` - Monday through Friday
|
||||
- `weekend` - Saturday and Sunday (or custom weekend days)
|
||||
|
||||
## 🌍 Locale Support
|
||||
|
||||
### Basic Usage
|
||||
```tsx
|
||||
import { Year } from 'react-calendario';
|
||||
import { fr, de, ja, es } from 'date-fns/locale';
|
||||
|
||||
// French
|
||||
<Year year={2025} locale={fr} />
|
||||
|
||||
// German
|
||||
<Year year={2025} locale={de} />
|
||||
|
||||
// Japanese
|
||||
<Year year={2025} locale={ja} />
|
||||
|
||||
// Spanish
|
||||
<Year year={2025} locale={es} />
|
||||
```
|
||||
|
||||
### What Gets Localized:
|
||||
- Month names (January → Janvier → Januar → 一月)
|
||||
- Day headers based on style:
|
||||
- `expanded`: Full names (MONDAY → LUNDI → MONTAG)
|
||||
- `compacted`: 3-letter (MON → LUN → MO)
|
||||
- `tiny`: Single letter (M → L → M)
|
||||
- Date formats in tooltips and labels
|
||||
|
||||
### Available Locales:
|
||||
All date-fns locales are supported. Common ones include:
|
||||
- `enUS` - English (US) - Default
|
||||
- `es` - Spanish
|
||||
- `fr` - French
|
||||
- `de` - German
|
||||
- `it` - Italian
|
||||
- `pt` - Portuguese
|
||||
- `ja` - Japanese
|
||||
- `ko` - Korean
|
||||
- `zhCN` - Chinese (Simplified)
|
||||
- `ru` - Russian
|
||||
- `ar` - Arabic
|
||||
- `nl` - Dutch
|
||||
- `pl` - Polish
|
||||
- `tr` - Turkish
|
||||
- `sv` - Swedish
|
||||
- `nb` - Norwegian
|
||||
|
||||
## 🎯 Combined Example
|
||||
|
||||
Using both features together:
|
||||
|
||||
```tsx
|
||||
import { Year, ColorScheme } from 'react-calendario';
|
||||
import { fr } from 'date-fns/locale';
|
||||
|
||||
const frenchHolidayScheme: ColorScheme = [
|
||||
// Regular days with French aesthetic
|
||||
{
|
||||
type: 'weekday',
|
||||
state: 'default',
|
||||
colors: {
|
||||
header: { backgroundColor: '#002395', color: '#ffffff' }, // French blue
|
||||
content: { backgroundColor: '#ffffff', color: '#002395' }
|
||||
}
|
||||
},
|
||||
// Weekends in subtle gray
|
||||
{
|
||||
type: 'weekend',
|
||||
state: 'default',
|
||||
colors: {
|
||||
header: { backgroundColor: '#95a5a6', color: '#ffffff' },
|
||||
content: { backgroundColor: '#ecf0f1', color: '#34495e' }
|
||||
}
|
||||
},
|
||||
// French holidays in red
|
||||
{
|
||||
type: 'weekday',
|
||||
state: 'active',
|
||||
colors: {
|
||||
header: { backgroundColor: '#ed2939', color: '#ffffff' }, // French red
|
||||
content: { backgroundColor: '#c0392b', color: '#ffffff' }
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'weekend',
|
||||
state: 'active',
|
||||
colors: {
|
||||
header: { backgroundColor: '#c0392b', color: '#ffffff' },
|
||||
content: { backgroundColor: '#ed2939', color: '#ffffff' }
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
const frenchHolidays = [
|
||||
new Date(2025, 0, 1), // Jour de l'An
|
||||
new Date(2025, 4, 1), // Fête du Travail
|
||||
new Date(2025, 6, 14), // Fête Nationale
|
||||
new Date(2025, 11, 25) // Noël
|
||||
];
|
||||
|
||||
<Year
|
||||
year={2025}
|
||||
locale={fr}
|
||||
colorScheme={frenchHolidayScheme}
|
||||
activeDates={frenchHolidays}
|
||||
dayHeaderStyle="compacted"
|
||||
/>
|
||||
```
|
||||
|
||||
## 📝 Tips
|
||||
|
||||
1. **Color Scheme Fallbacks**: You don't need to define every state. The system intelligently falls back:
|
||||
- Weekend states → Weekday states of same type
|
||||
- Missing states → Default state
|
||||
- Weekend default → Weekday default
|
||||
|
||||
2. **Performance**: ColorScheme is more efficient than inline styles for large calendars
|
||||
|
||||
3. **Accessibility**: Ensure sufficient color contrast between background and text colors
|
||||
|
||||
4. **Locale + Colors**: Combine locale with themed colors for culturally appropriate calendars
|
||||
|
||||
5. **Weekend Customization**: Weekend days are automatically detected and styled differently, including when they're part of a selected range
|
||||
Loading…
Reference in New Issue