{"id":13395428,"url":"https://github.com/palantir/blueprint","last_synced_at":"2026-05-19T20:01:59.709Z","repository":{"id":37412661,"uuid":"71939872","full_name":"palantir/blueprint","owner":"palantir","description":"A React-based UI toolkit for the web","archived":false,"fork":false,"pushed_at":"2026-04-03T20:12:41.000Z","size":395272,"stargazers_count":21595,"open_issues_count":968,"forks_count":2277,"subscribers_count":525,"default_branch":"develop","last_synced_at":"2026-04-03T20:21:08.341Z","etag":null,"topics":["blueprint","components","design","lerna","octo-correct-managed","react","sass","system","table","toolkit","typescript","ui"],"latest_commit_sha":null,"homepage":"https://blueprintjs.com/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/palantir.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2016-10-25T21:17:50.000Z","updated_at":"2026-04-03T18:46:00.000Z","dependencies_parsed_at":"2022-07-05T15:01:09.510Z","dependency_job_id":"17fb536d-4683-41f5-ad07-fe0282445012","html_url":"https://github.com/palantir/blueprint","commit_stats":{"total_commits":3568,"total_committers":422,"mean_commits":8.454976303317535,"dds":0.6608744394618834,"last_synced_commit":"1d546fe2959e6ff3d541afdbecac50b0c993866a"},"previous_names":[],"tags_count":4225,"template":false,"template_full_name":null,"purl":"pkg:github/palantir/blueprint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palantir%2Fblueprint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palantir%2Fblueprint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palantir%2Fblueprint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palantir%2Fblueprint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/palantir","download_url":"https://codeload.github.com/palantir/blueprint/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palantir%2Fblueprint/sbom","scorecard":{"id":114078,"data":{"date":"2025-08-04","repo":{"name":"github.com/palantir/blueprint","commit":"cc76f84e1f92abf131b2c2ed7045343757814f55"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":4.7,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#packaging"}},{"name":"Code-Review","score":8,"reason":"Found 25/29 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#license"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 29 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"24 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-xffm-g5w8-qvg7","Warn: Project is vulnerable to: GHSA-x4c5-c7rf-jjgv","Warn: Project is vulnerable to: GHSA-h5c3-5r3r-rr8q","Warn: Project is vulnerable to: GHSA-rmvr-2pp2-xj38","Warn: Project is vulnerable to: GHSA-xx4v-prfh-6cgc","Warn: Project is vulnerable to: GHSA-v88g-cgmw-v5xw","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-qwcr-r2fm-qrc7","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-qw6h-vgh9-j6wx","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-mwcw-c2x4-8c55","Warn: Project is vulnerable to: GHSA-rp65-9cf3-cjxr","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w","Warn: Project is vulnerable to: GHSA-m6fv-jmcg-4jfg","Warn: Project is vulnerable to: GHSA-76p7-773f-r4q5","Warn: Project is vulnerable to: GHSA-cm22-4g7w-348p","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-4v9v-hfq4-rm2v","Warn: Project is vulnerable to: GHSA-9jgg-88mc-972h","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-15T22:42:16.018Z","repository_id":37412661,"created_at":"2025-08-15T22:42:16.018Z","updated_at":"2025-08-15T22:42:16.018Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31526666,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blueprint","components","design","lerna","octo-correct-managed","react","sass","system","table","toolkit","typescript","ui"],"created_at":"2024-07-30T17:01:58.229Z","updated_at":"2026-05-19T20:01:59.684Z","avatar_url":"https://github.com/palantir.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","UI Frameworks","Uncategorized","UI Frameworks \u0026 Libraries","Typescript / Javascript","Cases","前端开发框架及项目","React","HarmonyOS","React [🔝](#readme)","ui","UI Components","Component Libraries","Frameworks / Resources","🌐 Web Development - Frontend"],"sub_categories":["Component Collections","Uncategorized","style","Responsive","其他_文本生成、文本对话","Component Libraries","Windows Manager","Table","B"],"readme":"\u003cp align=\"right\"\u003e\n\u003ca href=\"https://autorelease.general.dmz.palantir.tech/palantir/blueprint\"\u003e\u003cimg src=\"https://img.shields.io/badge/Perform%20an-Autorelease-success.svg\" alt=\"Autorelease\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cimg height=\"204\" src=\"https://cloud.githubusercontent.com/assets/464822/20228152/d3f36dc2-a804-11e6-80ff-51ada2d13ea7.png\"\u003e\n\n# [Blueprint](http://blueprintjs.com/) [![CircleCI](https://circleci.com/gh/palantir/blueprint/tree/develop.svg?style=svg)](https://circleci.com/gh/palantir/workflows/blueprint)\n\nBlueprint is a React-based UI toolkit for the web.\n\nIt is optimized for building complex, data-dense web interfaces for _desktop applications_ which run in modern browsers.\nThis is not a mobile-first UI toolkit.\n\n[**Read the introductory blog post ▸**](https://medium.com/@palantir/scaling-product-design-with-blueprint-25492827bb4a)\n\n[**View the full documentation ▸**](http://blueprintjs.com/docs)\n\n[**Try it out on CodeSandbox ▸**](https://codesandbox.io/p/sandbox/blueprint-v6-react-18-template-lc69nt)\n\n[**Read frequently asked questions (FAQ) on the wiki ▸**](https://github.com/palantir/blueprint/wiki/Frequently-Asked-Questions)\n\n## Changelog\n\nBlueprint's change log and migration guides for major versions live on the repo's\n[Github wiki](https://github.com/palantir/blueprint/wiki/6.x-Changelog).\n\n## Packages\n\nThis repository contains multiple projects in the `packages/` directory that fall into 3 categories:\n\n### Libraries\n\nThese are the component libraries we publish to NPM.\n\n- [![npm](https://img.shields.io/npm/v/@blueprintjs/colors.svg?label=@blueprintjs/colors)](https://www.npmjs.com/package/@blueprintjs/colors) \u0026ndash; Design system color variables.\n- [![npm](https://img.shields.io/npm/v/@blueprintjs/core.svg?label=@blueprintjs/core)](https://www.npmjs.com/package/@blueprintjs/core) \u0026ndash; Core styles \u0026 components.\n- [![npm](https://img.shields.io/npm/v/@blueprintjs/datetime.svg?label=@blueprintjs/datetime)](https://www.npmjs.com/package/@blueprintjs/datetime) \u0026ndash; Components for interacting with dates and times.\n- [![npm](https://img.shields.io/npm/v/@blueprintjs/icons.svg?label=@blueprintjs/icons)](https://www.npmjs.com/package/@blueprintjs/icons) \u0026ndash; APIs for displaying icons (contains both SVG and icon font implementations).\n- [![npm](https://img.shields.io/npm/v/@blueprintjs/select.svg?label=@blueprintjs/select)](https://www.npmjs.com/package/@blueprintjs/select) \u0026ndash; Components for selecting items from a list.\n- [![npm](https://img.shields.io/npm/v/@blueprintjs/table.svg?label=@blueprintjs/table)](https://www.npmjs.com/package/@blueprintjs/table) \u0026ndash; Scalable \u0026 interactive spreadsheet-like table component.\n\n### Applications\n\nThese are hosted on GitHub Pages as static web applications:\n\n- `docs-app` \u0026ndash; Documentation site at blueprintjs.com/docs\n- `landing-app` \u0026ndash; Landing page at blueprintjs.com\n\nThese are used as development playground environments:\n\n- `demo-app` \u0026ndash; demo page that shows many components all on the same page in light and dark themes\n- `table-dev-app` \u0026ndash; demo page that supports manual testing of all table features\n\n### Build tooling\n\nThese packages define development dependencies and contain build configuration. They adhere to the standard NPM package layout, which allows us to keep clear API boundaries for build configuration and isolate groups of `devDependencies`. They are published to NPM in order to allow other Blueprint-related projects to use this infrastructure outside this monorepo.\n\n- [![npm](https://img.shields.io/npm/v/@blueprintjs/docs-theme.svg?label=@blueprintjs/docs-theme)](https://www.npmjs.com/package/@blueprintjs/docs-theme) \u0026ndash; Documentation theme for [Documentalist](https://github.com/palantir/documentalist) data.\n- [![npm](https://img.shields.io/npm/v/@blueprintjs/eslint-config.svg?label=@blueprintjs/eslint-config)](https://www.npmjs.com/package/@blueprintjs/eslint-config) \u0026ndash; ESLint configuration used in this repo and recommended for Blueprint-related projects.\n- [![npm](https://img.shields.io/npm/v/@blueprintjs/eslint-plugin.svg?label=@blueprintjs/eslint-plugin)](https://www.npmjs.com/package/@blueprintjs/eslint-plugin) \u0026ndash; implementations for custom ESLint rules which enforce best practices for Blueprint usage.\n- [![npm](https://img.shields.io/npm/v/@blueprintjs/node-build-scripts.svg?label=@blueprintjs/node-build-scripts)](https://www.npmjs.com/package/@blueprintjs/node-build-scripts) \u0026ndash; various utility scripts for building Sass sources, linting Sass \u0026 TypeScript, generating Sass \u0026 Less variables, and optimizing icon SVGs.\n- [![npm](https://img.shields.io/npm/v/@blueprintjs/stylelint-plugin.svg?label=@blueprintjs/stylelint-plugin)](https://www.npmjs.com/package/@blueprintjs/stylelint-plugin) \u0026ndash; implementations for custom stylelint rules which enforce best practices for Blueprint usage.\n- [![npm](https://img.shields.io/npm/v/@blueprintjs/test-commons.svg?label=@blueprintjs/test-commons)](https://www.npmjs.com/package/@blueprintjs/test-commons) \u0026ndash; various utility functions used in Blueprint test suites.\n- [![npm](https://img.shields.io/npm/v/@blueprintjs/webpack-build-scripts.svg?label=@blueprintjs/webpack-build-scripts)](https://www.npmjs.com/package/@blueprintjs/webpack-build-scripts) \u0026ndash; Webpack build configuration for Blueprint projects.\n\n## Contributing\n\nLooking for places to contribute to the codebase?\nFirst read the [contribution guidelines](https://github.com/palantir/blueprint/blob/develop/CONTRIBUTING.md),\nthen [check out the \"help wanted\" label](https://github.com/palantir/blueprint/labels/help%20wanted).\n\n## Development\n\n[pnpm](https://pnpm.io) manages third-party and inter-package dependencies in this monorepo.\nBuilds are orchestrated via [Nx's task runner](https://nx.dev/getting-started/intro) and NPM scripts.\n[Lerna-Lite](https://github.com/lerna-lite/lerna-lite) is used to prepare releases.\n\n**Prerequisites**: Node.js v24.11+ (see version specified in `.nvmrc`), pnpm v10.x (see version specified in `package.json`)\n\n### One-time setup\n\nFirst, ensure you have `nvm` ([Node Version Manager](https://github.com/nvm-sh/nvm)) installed.\n\nAfter cloning this repo, run:\n\n1. `nvm use` to use the supported Node version for Blueprint development.\n2. `corepack enable` to activate [pnpm](https://pnpm.io/installation) as the Node package manager.\n3. `pnpm install` to install all dependencies for the monorepo.\n    1. If seeing an error like \"Error when performing the request ...\", you may be using a VPN that needs to be disabled to install the dependencies.\n4. If running on Windows:\n    1. `npm install -g windows-build-tools` to install build tools globally\n    2. Ensure `bash` is your configured script-shell by running:\u003cbr /\u003e\n       `npm config set script-shell \"C:\\\\Program Files\\\\git\\\\bin\\\\bash.exe\"`\u003cbr /\u003e\n       (reset this by running `npm config delete script-shell`)\n5. `pnpm verify` to ensure you have all the build tooling working properly.\n    1. There may currently be some errors when running this step, even though everything is set up properly, see https://github.com/palantir/blueprint/issues/6926 for more info.\n6. (Optional) Run `pnpm dev:demo` to start the demo app and verify your setup is working.\n\n### Incorporating upstream changes\n\nIf you were previously in a working state and have just pulled new code from `develop`:\n\n- If there were package dependency changes, run `pnpm install` at the root.\n    - This command is very quick if there are no new things to install.\n- Run `pnpm compile` to get the latest built versions of the library packages in this repo.\n    - This command is quicker than `pnpm verify` since it doesn't build the application packages (`docs-app`,`landing-app`, etc.) or run tests\n\n### Developing libraries\n\nThere are a few ways to run development scripts, here they are listed from simplest to more advanced usage:\n\n- Run `pnpm dev` from the root directory to watch changes across all packages and run the docs application with webpack-dev-server.\n- Alternately, most libraries have a dev script to run the docs app _and_ watch changes to only that package:\n    - `pnpm dev:core`\n    - `pnpm dev:docs`\n    - `pnpm dev:datetime`\n    - `pnpm dev:demo`\n    - `pnpm dev:select`\n    - `pnpm dev:table`\n- Lastly, if you want to control exactly which dev scripts are run and view the console output in the cleanest way, we recommend opening separate terminal windows or splits and running local package dev tasks in each one. This is the recommended workflow for frequent contributors and advanced developers. For example, to test changes in the core and icons packages, you would run the following in separate terminals:\n    - `cd packages/core \u0026\u0026 pnpm dev`\n    - `cd packages/icons \u0026\u0026 pnpm dev`\n    - `cd packages/docs-app \u0026\u0026 pnpm dev`\n\n### Updating documentation\n\nMuch of Blueprint's documentation lives inside source code as JSDoc comments in `.tsx` files and KSS markup in `.scss` files. This documentation is extracted and converted into static JSON data using [documentalist](https://github.com/palantir/documentalist). If you are updating documentation sources (_not_ the docs UI code which lives in `packages/docs-app` or the docs theme in `packages/docs-theme`), you'll need to run `pnpm compile` from `packages/docs-data` to see changes reflected in the application. For simplicity, an alias script `pnpm docs-data` exists in the root to minimize directory hopping.\n\n### Updating icons\n\nThe [One-time setup](#one-time-setup) and [Incorporating upstream changes](#incorporating-upstream-changes) steps should produce the generated source code in this repo used to build the icons documentation. This is sufficient for most development workflows.\n\nIf you are updating icons or adding new ones, you'll need to run `pnpm compile` in `packages/icons` to see those changes reflected before running any of the dev scripts.\n\n## Thanks\n\n\u003ca href=\"https://www.chromatic.com/\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/321738/84662277-e3db4f80-af1b-11ea-88f5-91d67a5e59f6.png\" width=\"153\" height=\"30\" alt=\"Chromatic\" /\u003e\u003c/a\u003e\n\nThanks to [Chromatic](https://www.chromatic.com/) for providing the visual testing platform that helps us review UI changes and catch visual regressions.\n\n## License\n\nThis project is made available under the Apache 2.0 License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpalantir%2Fblueprint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpalantir%2Fblueprint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpalantir%2Fblueprint/lists"}