jQuery Mobile/Metro Calendar

A re-styled jQuery UI datepicker inline calendar for use in mobile devices. The color scheme is targetted at Metro styling.

by ducas

HTML

<input type="text" data-role="datepicker" />

CSS

.ui-datepicker-header {
    border-top: 2px solid black;
    margin-top: 5px;
    position: relative;
    height: 25px;
}
.ui-datepicker-header .ui-datepicker-title { font-weight: bold; }
.ui-datepicker-header.ui-corner-all {
    -moz-border-radius: 0;
    -webkit-border-radius: 0;
    border-radius: 0;
}
.ui-datepicker-header .ui-icon {
    background-color: transparent;
    background-image: url(http://code.jquery.com/mobile/1.0b3/images/icons-18-black.png);
    display: inline-block; 
    width: 20px; 
    height: 20px; 
    padding: 2px; 
    text-indent: -9999px;
}
.ui-datepicker-header a {
    border: 1px solid black;
    margin-top: 1px;
    padding-left: 5px;
    position: absolute;
    z-index: 10;
}
.ui-datepicker-header .ui-datepicker-prev {
    left: 0;
}
.ui-datepicker-header .ui-datepicker-prev .ui-icon {
    background-position: -144px 50%;
}
.ui-datepicker-header .ui-datepicker-next {
    right: 0;
}
.ui-datepicker-header .ui-datepicker-next .ui-icon {
    background-position: -108px 50%;
}
.ui-datepicker-header .ui-datepicker-title {
    position: absolute;
    top: 3px;
    margin: 0 auto;
    text-align: center;
    width: 100%;
}

.ui-datepicker-calendar {
    border-collapse: collapse;
    width: 100%;
}
.ui-datepicker-calendar th,
.ui-datepicker-calendar td {
    text-align: center;
}
.ui-datepicker-calendar th {
    font-size: 10px;
    height: 10px;
    vertical-align: bottom;
}
.ui-datepicker-calendar td {
    border: 1px solid black;
    height: 40px;
}
.ui-datepicker-calendar td a,
.ui-datepicker-calendar td a:active,
.ui-datepicker-calendar td a:visited,
.ui-datepicker-calendar td a:hover {
    color: #2489CE;
    font-weight: bold;
    text-decoration: none;
}
.ui-datepicker-calendar td.ui-datepicker-today {
    background: lightGray;
}
.ui-datepicker-calendar td.ui-datepicker-current-day {
    background: #2489CE;
}
.ui-datepicker-calendar td.ui-datepicker-current-day a {
    color: #fff;
}

JavaScript

$(function() {
    $('input[data-role="datepicker"]')
        .hide()
        .wrap('<span class="ui-datepicker-container" />')
        .after('<div class="datepicker"></div>')
        .parent()
        .find('div.datepicker')
        .datepicker({
            onSelect: function(dateText) {
                $(this)
                 .parent('.ui-datepicker-container')
                 .find('input:jqmData(role="datepicker")')
                 .val(dateText)
                 .trigger('change');
        }
    });
});