Highlights are simply 'highlighted' regions with custom defined height, background and border properties. For date regions (start and end date), they appear as a single continous span with specified border radius applied only to the end caps.
<v-calendar
:attributes='attributes'
is-double-paned>
</v-calendar>
export default {
data() {
return {
attributes: [
{
highlight: {
backgroundColor: '#ff8080', // Red background
borderColor: '#ff6666',
borderWidth: '2px',
borderStyle: 'solid',
},
contentStyle: {
color: 'white', // White text
},
dates: [
{
start: new Date(2018, 0, 1), // Jan 1st
end: new Date(2018, 0, 4), // - Jan 4th
},
{
start: new Date(2018, 0, 1), // Starting Jan 1st
ordinalWeekdays: { [-1]: 7 }, // On last Sat of every month
// end: null, // Infinite end date is implied
},
new Date(2018, 1, 6), // Feb 6th
new Date(2018, 1, 23), // Feb 23rd
],
},
{
highlight: {
backgroundColor: '#9f80ff', // Purple background
borderColor: '#8c66ff',
borderWidth: '2px',
},
contentStyle: {
color: 'white', // White text
},
dates: [
new Date(2018, 0, 1), // Jan 1st
new Date(2018, 0, 10), // Jan 10th
new Date(2018, 0, 12), // Jan 12th
{
start: new Date(2018, 1, 22), // Feb 22nd
end: new Date(2018, 1, 26), // - Feb 26th
},
],
},
{
highlight: {
backgroundColor: '#66b3cc', // Turquoise background
borderColor: '#53a9c6',
borderWidth: '2px',
borderRadius: '5px',
},
contentStyle: {
color: 'white', // White text
},
dates: [
new Date(2018, 0, 14), // Jan 14th
{
start: new Date(2018, 0, 24), // Jan 24th
end: new Date(2018, 0, 25), // - Jan 25th
},
new Date(2018, 0, 28), // Jan 28th
new Date(2018, 1, 4), // Feb 4th
{
start: new Date(2018, 1, 16), // Feb 16th
end: new Date(2018, 1, 17), // - Feb 17th
},
],
},
],
};
},
};
One thing to observe is that all attributes use the default order
, but layering is appropriately applied in order to display the most information possible. So, single date highlights appear above date range highlights.