UNPKG

premiumcalendar

Version:

A lightweight and customizable JavaScript + CSS calendar library for modern web applications.

229 lines (189 loc) 4.81 kB
/* * MMK Premium Calendar v1.0 (https://premiumcalendar.malleeshkanna.com/) * Copyright 2025 Malleeshkanna (https://malleeshkanna.com) * Licensed under MIT (https://premiumcalendar.malleeshkanna.com/license) */ :root { --selected-color: #4f46e5; --button-bg: #4f46e5; --highlight-color: #4f46e5; --today-color: #22c55e; --border-color: #e5e7eb; } .mmk-calendar-container { border-radius: 1rem; max-width: 400px; margin: auto; padding: 1rem; } .mmk-calendar-container .calendar-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; } .mmk-calendar-container .calendar-header button, #MmktodayBtn { background: var(--button-bg); color: white; border: none; padding: 0.5rem 1rem; border-radius: 0.5rem; cursor: pointer; font-weight: bold; transition: background 0.3s ease; } .mmk-calendar-container .calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.5rem; } .mmk-calendar-container .day-name { font-weight: bold; text-align: center; color: #6b7280; } .mmk-calendar-container .day { text-align: center; padding: 0.5rem; cursor: pointer; border: 1px solid var(--border-color); } .mmk-calendar-container .day.today { background-color: var(--today-color); color: white; } .mmk-calendar-container .day.selected { background-color: var(--selected-color); color: white; } .mmk-calendar-container .day.disabled { opacity: 0.4; pointer-events: none; background-color: #f3f4f6; } .mmk-calendar-container .calendar-btn-align { margin-top: 1rem; text-align: center; } .mmk-calendar-container .in-range { background-color: var(--highlight-color) !important; color: white; opacity: 60%; } .mmk-calendar-input { padding: 0.5rem 0.75rem; border: 1px solid #ccc; border-radius: 0.5rem; font-size: 1rem; width: 120px; text-align: center; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05); transition: all 0.2s ease; } .mmk-calendar-input:focus { border-color: var(--highlight-color); outline: none; box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.2); } #MmkmonthSelect { background-color: white; cursor: pointer; } .mmk-icon { width: 20px; height: 15px; display: block; background-size: contain; background-repeat: no-repeat; background-position: center; } .left-chevron { background-image: url("https://cdn.malleeshkanna.com/mmkpremiumcalendar/assets/left-chevron.svg"); } .right-chevron { background-image: url("https://cdn.malleeshkanna.com/mmkpremiumcalendar/assets/right-chevron.svg"); } .calendar-grid.fade.fade-in { animation: fadein 0.3s ease; } @keyframes fadein { from { opacity: 0; transform: scale(0.98); } to { opacity: 1; transform: scale(1); } } @media only screen and (max-width: 440px) { .mmk-calendar-input { width: 62px; } .mmk-calendar-container .day { font-size: 10px; } .mmk-calendar-container .day-name { font-size: 12px; } .mmk-calendar-container .calendar-header button, #MmktodayBtn { padding: 10px; } .mmk-calendar-container .calendar-header { gap: 10px; } #MmkmonthSelect { font-size: 10px; } input#yearInput { font-size: 10px; } } /* DARK MODE OVERRIDES */ .dark { --border-color: #374151; /* Tailwind's gray-700 */ background-color: #111827; /* Tailwind's gray-900 */ color: #f9fafb; /* Tailwind's gray-50 */ } .dark .mmk-calendar-container { background-color: #1f2937; /* Tailwind's gray-800 */ color: #f9fafb; } .dark .mmk-calendar-container .calendar-header button, .dark #MmktodayBtn { background: var(--button-bg); color: white; } .dark .mmk-calendar-container .calendar-grid { background-color: #1f2937; } .dark .mmk-calendar-container .day-name { color: #9ca3af; /* Tailwind's gray-400 */ } .dark .mmk-calendar-container .day { background-color: transparent; border: 1px solid var(--border-color); color: #e5e7eb; } .dark .mmk-calendar-container .day.today { background-color: var(--today-color); color: white; } .dark .mmk-calendar-container .day.selected { background-color: var(--selected-color); color: white; } .dark .day.disabled { background-color:#fefeff; /* gray-700 */ opacity: 0.3; color: #000000; } .dark .mmk-calendar-input { background-color: #1f2937; color: #f9fafb; border: 1px solid var(--border-color); } .dark .mmk-calendar-input:focus { border-color: var(--highlight-color); box-shadow: 0 0 0 3px rgba(129, 140, 248, 0.2); } .dark #MmkmonthSelect { background-color: #1f2937; color: #f9fafb; }