@ -39,184 +39,200 @@ export const InteractiveDateRange: React.FC = () => {
// Color schemes with proper weekend and today support
const colorSchemes : Record < string , ColorScheme > = {
ocean : [
// Today state (highest priority )
{ type : 'weekday' , state : 'today ', colors : {
// Today 's date colors (any state )
{ weekSplit : 'weekday' , relative : 'today' , state : 'default ', colors : {
header : { backgroundColor : '#ffd700' , color : '#000000' } ,
content : { backgroundColor : '#fff9e6' , color : '#000000' }
} } ,
{ type : 'weekend' , state : 'today ', colors : {
{ weekSplit : 'weekend' , relative : 'today' , state : 'default ', colors : {
header : { backgroundColor : '#ffb347' , color : '#000000' } ,
content : { backgroundColor : '#fff5e6' , color : '#000000' }
} } ,
// Weekday states
{ type : 'weekday' , state : 'default' , colors : {
{ weekSplit : 'weekday' , relative : 'today' , state : 'active' , colors : {
header : { backgroundColor : '#ffed4e' , color : '#000000' } ,
content : { backgroundColor : '#fff59d' , color : '#000000' }
} } ,
{ weekSplit : 'weekday' , relative : 'today' , state : 'rangeStart' , colors : {
header : { backgroundColor : '#ffc107' , color : '#000000' } ,
content : { backgroundColor : '#ffeb3b' , color : '#000000' }
} } ,
// Weekday states (anyday - default when relative is omitted)
{ weekSplit : 'weekday' , state : 'default' , colors : {
header : { backgroundColor : '#006994' , color : '#ffffff' } ,
content : { backgroundColor : '#ffffff' , color : '#006994' }
} } ,
{ type : 'weekday' , state : 'selecting' , colors : {
{ weekSplit : 'weekday' , state : 'selecting' , colors : {
header : { backgroundColor : '#4a90a4' , color : '#ffffff' } ,
content : { backgroundColor : '#e8f4f8' , color : '#006994' }
} } ,
{ type : 'weekday' , state : 'rangeStart' , colors : {
{ weekSplit : 'weekday' , state : 'rangeStart' , colors : {
header : { backgroundColor : '#004d6f' , color : '#ffffff' } ,
content : { backgroundColor : '#0084b4' , color : '#ffffff' }
} } ,
{ type : 'weekday' , state : 'rangeEnd' , colors : {
{ weekSplit : 'weekday' , state : 'rangeEnd' , colors : {
header : { backgroundColor : '#004d6f' , color : '#ffffff' } ,
content : { backgroundColor : '#0084b4' , color : '#ffffff' }
} } ,
{ type : 'weekday' , state : 'rangeMid' , colors : {
{ weekSplit : 'weekday' , state : 'rangeMid' , colors : {
header : { backgroundColor : '#3ca0c8' , color : '#ffffff' } ,
content : { backgroundColor : '#b3d9ea' , color : '#004d6f' }
} } ,
{ type : 'weekday' , state : 'active' , colors : {
{ weekSplit : 'weekday' , state : 'active' , colors : {
header : { backgroundColor : '#00a8e8' , color : '#ffffff' } ,
content : { backgroundColor : '#007ea7' , color : '#ffffff' }
} } ,
// Weekend states - with subtle differentiation
{ type : 'weekend' , state : 'default' , colors : {
{ weekSplit : 'weekend' , state : 'default' , colors : {
header : { backgroundColor : '#5c8ca3' , color : '#ffffff' } ,
content : { backgroundColor : '#f0f6f9' , color : '#3d5a6c' }
} } ,
{ type : 'weekend' , state : 'selecting' , colors : {
{ weekSplit : 'weekend' , state : 'selecting' , colors : {
header : { backgroundColor : '#7aa3b8' , color : '#ffffff' } ,
content : { backgroundColor : '#dde9f0' , color : '#4a6b7c' }
} } ,
{ type : 'weekend' , state : 'rangeStart' , colors : {
{ weekSplit : 'weekend' , state : 'rangeStart' , colors : {
header : { backgroundColor : '#003f5c' , color : '#ffffff' } ,
content : { backgroundColor : '#006d94' , color : '#ffffff' }
} } ,
{ type : 'weekend' , state : 'rangeEnd' , colors : {
{ weekSplit : 'weekend' , state : 'rangeEnd' , colors : {
header : { backgroundColor : '#003f5c' , color : '#ffffff' } ,
content : { backgroundColor : '#006d94' , color : '#ffffff' }
} } ,
{ type : 'weekend' , state : 'rangeMid' , colors : {
{ weekSplit : 'weekend' , state : 'rangeMid' , colors : {
header : { backgroundColor : '#6eb5d0' , color : '#ffffff' } ,
content : { backgroundColor : '#cce5f0' , color : '#003f5c' }
} } ,
{ type : 'weekend' , state : 'active' , colors : {
{ weekSplit : 'weekend' , state : 'active' , colors : {
header : { backgroundColor : '#0096c7' , color : '#ffffff' } ,
content : { backgroundColor : '#0077b6' , color : '#ffffff' }
} }
] ,
sunset : [
// Today state
{ type : 'weekday' , state : 'today ', colors : {
// Today 's date colors
{ weekSplit : 'weekday' , relative : 'today' , state : 'default ', colors : {
header : { backgroundColor : '#ff1744' , color : '#ffffff' } ,
content : { backgroundColor : '#ffebee' , color : '#c62828' }
} } ,
{ type : 'weekend' , state : 'today ', colors : {
{ weekSplit : 'weekend' , relative : 'today' , state : 'default ', colors : {
header : { backgroundColor : '#ff6b6b' , color : '#ffffff' } ,
content : { backgroundColor : '#ffe0e0' , color : '#d32f2f' }
} } ,
{ weekSplit : 'weekday' , relative : 'today' , state : 'active' , colors : {
header : { backgroundColor : '#ff5252' , color : '#ffffff' } ,
content : { backgroundColor : '#ffcdd2' , color : '#b71c1c' }
} } ,
// Weekday states
{ type : 'weekday' , state : 'default' , colors : {
{ weekSplit : 'weekday' , state : 'default' , colors : {
header : { backgroundColor : '#ff6b35' , color : '#ffffff' } ,
content : { backgroundColor : '#ffffff' , color : '#ff6b35' }
} } ,
{ type : 'weekday' , state : 'selecting' , colors : {
{ weekSplit : 'weekday' , state : 'selecting' , colors : {
header : { backgroundColor : '#ff8c5a' , color : '#ffffff' } ,
content : { backgroundColor : '#ffe8df' , color : '#c94820' }
} } ,
{ type : 'weekday' , state : 'rangeStart' , colors : {
{ weekSplit : 'weekday' , state : 'rangeStart' , colors : {
header : { backgroundColor : '#d84315' , color : '#ffffff' } ,
content : { backgroundColor : '#ff5722' , color : '#ffffff' }
} } ,
{ type : 'weekday' , state : 'rangeEnd' , colors : {
{ weekSplit : 'weekday' , state : 'rangeEnd' , colors : {
header : { backgroundColor : '#d84315' , color : '#ffffff' } ,
content : { backgroundColor : '#ff5722' , color : '#ffffff' }
} } ,
{ type : 'weekday' , state : 'rangeMid' , colors : {
{ weekSplit : 'weekday' , state : 'rangeMid' , colors : {
header : { backgroundColor : '#ff8a65' , color : '#ffffff' } ,
content : { backgroundColor : '#ffccbc' , color : '#bf360c' }
} } ,
{ type : 'weekday' , state : 'active' , colors : {
{ weekSplit : 'weekday' , state : 'active' , colors : {
header : { backgroundColor : '#f4511e' , color : '#ffffff' } ,
content : { backgroundColor : '#e64a19' , color : '#ffffff' }
} } ,
// Weekend states
{ type : 'weekend' , state : 'default' , colors : {
{ weekSplit : 'weekend' , state : 'default' , colors : {
header : { backgroundColor : '#ff9671' , color : '#ffffff' } ,
content : { backgroundColor : '#fff4f0' , color : '#cc5030' }
} } ,
{ type : 'weekend' , state : 'selecting' , colors : {
{ weekSplit : 'weekend' , state : 'selecting' , colors : {
header : { backgroundColor : '#ffab8f' , color : '#ffffff' } ,
content : { backgroundColor : '#ffe0d6' , color : '#b84020' }
} } ,
{ type : 'weekend' , state : 'rangeStart' , colors : {
{ weekSplit : 'weekend' , state : 'rangeStart' , colors : {
header : { backgroundColor : '#bf360c' , color : '#ffffff' } ,
content : { backgroundColor : '#ff6e40' , color : '#ffffff' }
} } ,
{ type : 'weekend' , state : 'rangeEnd' , colors : {
{ weekSplit : 'weekend' , state : 'rangeEnd' , colors : {
header : { backgroundColor : '#bf360c' , color : '#ffffff' } ,
content : { backgroundColor : '#ff6e40' , color : '#ffffff' }
} } ,
{ type : 'weekend' , state : 'rangeMid' , colors : {
{ weekSplit : 'weekend' , state : 'rangeMid' , colors : {
header : { backgroundColor : '#ffab91' , color : '#ffffff' } ,
content : { backgroundColor : '#ffddd2' , color : '#a73010' }
} } ,
{ type : 'weekend' , state : 'active' , colors : {
{ weekSplit : 'weekend' , state : 'active' , colors : {
header : { backgroundColor : '#ff3d00' , color : '#ffffff' } ,
content : { backgroundColor : '#ff6e40' , color : '#ffffff' }
} }
] ,
forest : [
// Today state
{ type : 'weekday' , state : 'today ', colors : {
// Today 's date colors
{ weekSplit : 'weekday' , relative : 'today' , state : 'default ', colors : {
header : { backgroundColor : '#66bb6a' , color : '#ffffff' } ,
content : { backgroundColor : '#e8f5e9' , color : '#2e7d32' }
} } ,
{ type : 'weekend' , state : 'today ', colors : {
{ weekSplit : 'weekend' , relative : 'today' , state : 'default ', colors : {
header : { backgroundColor : '#81c784' , color : '#ffffff' } ,
content : { backgroundColor : '#f1f8e9' , color : '#33691e' }
} } ,
{ weekSplit : 'weekday' , relative : 'today' , state : 'rangeStart' , colors : {
header : { backgroundColor : '#4caf50' , color : '#ffffff' } ,
content : { backgroundColor : '#c8e6c9' , color : '#1b5e20' }
} } ,
// Weekday states
{ type : 'weekday' , state : 'default' , colors : {
{ weekSplit : 'weekday' , state : 'default' , colors : {
header : { backgroundColor : '#2d6a4f' , color : '#ffffff' } ,
content : { backgroundColor : '#ffffff' , color : '#2d6a4f' }
} } ,
{ type : 'weekday' , state : 'selecting' , colors : {
{ weekSplit : 'weekday' , state : 'selecting' , colors : {
header : { backgroundColor : '#52b788' , color : '#ffffff' } ,
content : { backgroundColor : '#d8f3dc' , color : '#1b5e3f' }
} } ,
{ type : 'weekday' , state : 'rangeStart' , colors : {
{ weekSplit : 'weekday' , state : 'rangeStart' , colors : {
header : { backgroundColor : '#1b5e3f' , color : '#ffffff' } ,
content : { backgroundColor : '#40916c' , color : '#ffffff' }
} } ,
{ type : 'weekday' , state : 'rangeEnd' , colors : {
{ weekSplit : 'weekday' , state : 'rangeEnd' , colors : {
header : { backgroundColor : '#1b5e3f' , color : '#ffffff' } ,
content : { backgroundColor : '#40916c' , color : '#ffffff' }
} } ,
{ type : 'weekday' , state : 'rangeMid' , colors : {
{ weekSplit : 'weekday' , state : 'rangeMid' , colors : {
header : { backgroundColor : '#74c69d' , color : '#ffffff' } ,
content : { backgroundColor : '#b7e4c7' , color : '#1b5e3f' }
} } ,
{ type : 'weekday' , state : 'active' , colors : {
{ weekSplit : 'weekday' , state : 'active' , colors : {
header : { backgroundColor : '#388e3c' , color : '#ffffff' } ,
content : { backgroundColor : '#2e7d32' , color : '#ffffff' }
} } ,
// Weekend states
{ type : 'weekend' , state : 'default' , colors : {
{ weekSplit : 'weekend' , state : 'default' , colors : {
header : { backgroundColor : '#6a994e' , color : '#ffffff' } ,
content : { backgroundColor : '#f1f8f4' , color : '#386641' }
} } ,
{ type : 'weekend' , state : 'selecting' , colors : {
{ weekSplit : 'weekend' , state : 'selecting' , colors : {
header : { backgroundColor : '#95d5b2' , color : '#ffffff' } ,
content : { backgroundColor : '#e5f5eb' , color : '#2d6a4f' }
} } ,
{ type : 'weekend' , state : 'rangeStart' , colors : {
{ weekSplit : 'weekend' , state : 'rangeStart' , colors : {
header : { backgroundColor : '#155d3f' , color : '#ffffff' } ,
content : { backgroundColor : '#52b788' , color : '#ffffff' }
} } ,
{ type : 'weekend' , state : 'rangeEnd' , colors : {
{ weekSplit : 'weekend' , state : 'rangeEnd' , colors : {
header : { backgroundColor : '#155d3f' , color : '#ffffff' } ,
content : { backgroundColor : '#52b788' , color : '#ffffff' }
} } ,
{ type : 'weekend' , state : 'rangeMid' , colors : {
{ weekSplit : 'weekend' , state : 'rangeMid' , colors : {
header : { backgroundColor : '#95d5b2' , color : '#ffffff' } ,
content : { backgroundColor : '#d8f3dc' , color : '#155d3f' }
} } ,
{ type : 'weekend' , state : 'active' , colors : {
{ weekSplit : 'weekend' , state : 'active' , colors : {
header : { backgroundColor : '#2e7d32' , color : '#ffffff' } ,
content : { backgroundColor : '#4caf50' , color : '#ffffff' }
} }
@ -381,14 +397,14 @@ export const InteractiveDateRange: React.FC = () => {
< div className = { styles . info } style = { { marginTop : '20px' , padding : '15px' , background : '#f9f9f9' , borderRadius : '8px' } } >
< h4 style = { { margin : '0 0 10px 0' } } > 🎨 Color Scheme Features : < / h4 >
< ul style = { { margin : '10px 0' , paddingLeft : '20px' } } >
< li > < strong > 📅 Today ' s Date : < / strong > Automatically highlighted with special colors ( gold / red / green based on theme ) < / li >
< li > < strong > 📅 Today ' s Date : < / strong > Can have special colors for any state ( default , active , rangeStart , etc . ) < / li >
< li > < strong > Weekdays vs Weekends : < / strong > Notice the subtle color differences < / li >
< li > < strong > Selecting State : < / strong > Hover while range is selected to see the selecting colors < / li >
< li > < strong > Range States : < / strong > Start / End dates have stronger colors than middle dates < / li >
< li > < strong > Active Dates : < / strong > Click to toggle - active dates get special highlighting < / li >
< / ul >
< p style = { { margin : '10px 0 0 0' , fontSize : '0.9em' , color : '#666' } } >
💡 Today ' s date has its own distinct styling that works with all themes !
💡 Today can be in any state and still have its special styling !
< / p >
< / div >
) }