Skip to content
CAI
Software that uses CAICheck a score

uxsolutions/bootstrap-datepicker

54.2

Adequate · 1 October 2026

3.6k

lines of production code

JavaScript

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

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.