uxsolutions/bootstrap-datepicker
54.2
Adequate · 1 October 2026
3.6k
lines of production code
JavaScript
primary language
2
measurements over time
What this system is
This system is a standalone JavaScript datepicker component designed for integration with jQuery and Bootstrap frameworks. It provides localized date selection interfaces with support for multiple languages, regional variants, and right-to-left layouts. The project includes a build pipeline for generating distribution assets and a comprehensive test suite to ensure interaction reliability.
How it got here
2012 — Build infrastructure and Bootstrap 3 migration
11 changes.
The project overhauled its build pipeline and documentation while migrating the datepicker component to support Bootstrap 3 and Right-to-Left layouts. This period also introduced comprehensive QUnit test coverage for keyboard and mouse interactions alongside expanded locale support.
2013–2015 — v1.10.0 release and dependency management
5 changes.
This period focused on preparing and releasing version 1.10.0, which included regenerating distributed CSS and JavaScript assets, expanding locale support with new languages and corrections, and establishing initial package manager compatibility via npm, Composer, and Yarn. The work also involved refining build tooling by adding specific JSHint configurations for Grunt tasks to ensure consistent code quality.
Features
Added standalone LESS build files for Bootstrap 2 and 3 compatibility
The build system now includes dedicated LESS entry points (build.less, build3.less, build\_standalone.less, and build\_standalone3.less) that bundle necessary Bootstrap variables and mixins directly with the datepicker styles. This allows users to generate self-contained CSS files for both Bootstrap 2.0.2 and Bootstrap 3.3.5 without requiring the full Bootstrap framework to be installed or imported separately, simplifying integration for projects using either version.
build · high confidence
Expanded and standardized datepicker locale support
The js/locales directory has been significantly expanded with new translation files for numerous languages and regional variants, including Canadian English (en-CA), Australian English (en-AU), New Zealand English (en-NZ), South African English (en-ZA), Irish English (en-IE), Belgian-Dutch (nl-BE), Swiss French (fr-CH), Swiss Italian (it-CH), and specific regional codes for Arabic (ar-DZ, ar-tn), Khmer (km), and Korean (ko). Several legacy or non-standard locale files (such as en-CA, kr, and kh) have been marked as deprecated with runtime warnings to guide users toward the correct ISO-compliant codes. Additionally, existing locales have been updated to include missing UI literals like 'clear' and 'today', standardized date formats, and corrected week start days, ensuring a more consistent and localized experience across the datepicker component.
js/locales · high confidence
Removals
Removal of legacy Bootstrap 2 datepicker styles
The standalone CSS file for the Bootstrap 2 datepicker component has been deleted. This change removes the visual styling rules for the datepicker widget, including its layout, active states, and hover effects, indicating that the component is no longer supported in its previous form or has been replaced by a different implementation.
css · high confidence
Behavioural changes
Added Grunt-specific JSHint configuration
A new \.jshintrc\ file has been added to the \grunt\ directory to define linting rules specifically for Grunt task files. This configuration extends the base JavaScript rules from the parent \js\ directory but overrides specific settings to disable automatic semicolon insertion, browser globals, and ES3 support, while enabling Node.js globals. This ensures that Grunt scripts are linted with the appropriate Node.js environment context.
grunt · high confidence
Bootstrap 3 compatibility and RTL support for datepicker
The datepicker styles have been updated to align with Bootstrap 3, introducing a new \datepicker3.less\ file alongside refactored \datepicker.less\ rules. This change adds support for Right-to-Left (RTL) layouts, allowing the picker to correctly orient dropdowns and float elements in RTL contexts. Additionally, the visual styling has been modernized to match Bootstrap 3's design language, including updated button variants, border radii, and specific styles for highlighted, today, and range-selected dates.
less · high confidence
Bootstrap Datepicker updated to v1.10.0
The distributed JavaScript files for Bootstrap Datepicker have been regenerated to version 1.10.0. This update includes the latest source code and minified build, reflecting changes such as improved RTL layout handling, corrected translation strings, and fixes for missing banners in CSS files as part of the release preparation.
dist/js · high confidence
Code style enforcement and AMD/CommonJS module support
The project now enforces consistent code formatting through new JSCS and JSHint configuration files (.jscsrc and .jshintrc) in the js directory. Additionally, the main datepicker script (bootstrap-datepicker.js) has been refactored to support AMD (RequireJS) and CommonJS module systems, allowing it to be loaded via standard module loaders rather than relying solely on global jQuery.
js · high confidence
Project infrastructure and documentation overhaul
The repository has been restructured to improve developer experience and project governance. A new Gruntfile.js establishes an automated build pipeline for compiling LESS to CSS, minifying JavaScript, and generating distribution assets. Package management is standardized with a new bower.json and updated README.md instructions for yarn and npm. To foster a healthier community, a Code of Conduct and Contributing guide have been added, alongside an EditorConfig for consistent code formatting. Documentation has been significantly updated, including a new CHANGELOG.md, corrected license URLs, and a modernized README with CDN and build instructions.
(repo-wide) · high confidence
Updated and expanded datepicker locale files
The distributed locale files in dist/locales have been regenerated to include new translations and corrections. This update adds support for several new languages and variants, including Uzbek (Latin and Cyrillic scripts), Sinhala, Esperanto, Korean, Mongolian, and Bambara. It also includes specific regional variants such as English for Canada and Australia, French for Switzerland, Dutch for Belgium, and Portuguese for Brazil. Additionally, the update corrects existing translations for languages like Danish and Bulgarian, adds a 'clear' button label for Finnish, and deprecates legacy language codes for Khmer ('kh') and Serbian ('rs', 'rs-latin') in favor of their modern equivalents ('km', 'sr', 'sr-latin').
dist/locales · high confidence
Test coverage
Added QUnit test suite for datepicker interactions; Added QUnit v1.5.0 testing infrastructure and test utilities; Added keyboard navigation regression tests for datepicker; Added mouse navigation test suite for datepicker; Initial comprehensive test suite for datepicker functionality.
Dependencies
Initial package manager support for npm, Composer, and Yarn
The project now supports installation via npm, Composer, and Yarn. A new \package.json\ defines the npm package (bootstrap-datepicker v1.10.0) with jQuery as a dependency and Grunt/Puppeteer as dev dependencies. A new \composer.json\ registers the library as a component requiring Bootstrap and jQuery, while a \yarn.lock\ file is added to lock dependency versions. Additionally, \docs/requirements.txt\ is introduced to manage Sphinx documentation dependencies.
(dependencies) · high confidence
Housekeeping
Updated dist files for v1.10.0
The distributed CSS files in dist/css (bootstrap-datepicker.css, bootstrap-datepicker.min.css, bootstrap-datepicker.standalone.css, and their source maps) have been regenerated to reflect the v1.10.0 release. This update ensures that the compiled styles match the latest source Less files and includes the correct version header in the output.
dist/css · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 50 → 54 (+3.9)
- Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 56 → 61 (+4.3)
- Architecture 100 (new)
- Maturity 45 → 45 (+0.0)
- Readiness 51 → 54 (+2.5)
- Security 69 → 75 (+6.2)
Resolved (3)
- Dependency hygiene PARTLY measured — npm pinning read, dependency currency not (no pnpm-resolved versions to grade)
- Floating npm dependency: jquery
- High CVE: [GHSA redacted] (yarn.lock)
New (5)
- Dependency hygiene PARTLY measured — Composer dependencies read, no committed lock to grade for currency
- Documentation: no architecture or design documentation (docs/README.md)
- Documentation: no usage examples (docs/methods.rst)
- FileTooLong: js/bootstrap-datepicker.js (js/bootstrap-datepicker.js)
- High CVE: [CVE redacted] (yarn.lock)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
uxsolutions/bootstrap-datepicker was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 722dc29432e89e048e5677b51fb4cfd8bbdab13c — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.