MCPcopy Index your code
hub / github.com/Workday/canvas-kit

github.com/Workday/canvas-kit @v15.0.18

Chat with this repo
repository ↗ · DeepWiki ↗ · release v15.0.18 ↗ · + Follow
2,490 symbols 8,063 edges 1,628 files 133 documented · 5% updated 2d agov15.0.18 · 2026-07-02★ 347152 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Workday Canvas Kit

This project provides a set of components for the Workday Canvas Design System that can be used to implement user experiences consistent with Workday's design principles.

Workday Canvas Kit is released under the Apache-2.0 license Maintained with Lerna Release PRs welcome


Getting Started

React

Dependency Version Support

The following are supported versions of dependencies.

  • React: >=17.0
  • Typescript: >=5.0 (optional)
  • Emotion: ^11.7.0

Installation

To get started using Canvas kit React first add or install the module to your existing React project

yarn add @workday/canvas-kit-react @workday/canvas-tokens-web

or

npm install @workday/canvas-kit-react @workday/canvas-tokens-web

Note: If your application does not already provide Roboto as a font, you can install @workday/canvas-kit-react-fonts. The example below shows how to inject the fonts, but you can omit this if you're already loading fonts.

Usage

To ensure fonts are loaded correctly, update your root index.js file.

import {createRoot} from 'react-dom/client';
import {injectGlobal} from '@emotion/css';
import {fonts} from '@workday/canvas-kit-react-fonts';
import {system} from '@workday/canvas-tokens-web';
import {cssVar} from '@workday/canvas-kit-styling';

import '@workday/canvas-tokens-web/css/base/_variables.css';
import '@workday/canvas-tokens-web/css/brand/_variables.css';
import '@workday/canvas-tokens-web/css/component/_variables.css';
import '@workday/canvas-tokens-web/css/system/_variables.css';


import {App} from './App';

injectGlobal({
  ...fonts,
  'html, body': {
    fontFamily: cssVar(system.fontFamily.default),
    margin: 0,
    minHeight: '100vh',
  },
  '#root, #root < div': {
    minHeight: '100vh',
    ...system.type.body.sm,
  },
});

const container = document.getElementById('root')!;
const root = createRoot(container);
root.render(<App />);

The in your App.js you can set a global theme.

import {CanvasProvider} from '@workday/canvas-kit-react/common';

export const App = () => {
  return (
    <CanvasProvider>
      <main>


Get Started With Canvas Kit


      </main>
    </CanvasProvider>
  );
};

Note: Don't use the CanvasProvider to theme, instead use our CSS tokens from @workday/canvas-tokens-web. For more information, view our Token docs. Theming should be global.

Reporting a Bug

If you spot a bug, inconsistency, or typo, please open a bug issue. Better yet, submit a pull request to address it.

Feature Requests

If you have an idea, we would love to hear about it. The best way to suggest a feature is to open a feature issue. The Canvas Kit core team will take a look and discuss it with you.

Contributing

Want to contribute to Canvas Kit React? Please read our contributing guidelines to find out more and how to get started.

Maintaining

If you're a Canvas Kit maintainer, please read our maintaining docs to learn more about our processes.

Open Development

All work on the Canvas Kit happens directly on GitHub. Both core team members and external contributors can send pull requests which go through the same review process. Any and all issues are public and available for discussion.

Versioning

Canvas Kit follows semantic versioning and is enforced automatically by conventional commits (see "Commit Message Format").

Each module is independently versioned using Lerna.

Version Support

At any given time, we support three major versions of Canvas Kit: previous, current, and next. Each of these has different levels of support.

The previous major version is stable for production and will receive patch updates as needed, but there will be no new features added. Patch releases are automatically deployed upon merge by GitHub Actions.

The current major version is also stable and receives new features and patch updates. Patch releases are automatically deployed upon merge by GitHub Actions, and minor releases are manually deployed at the end of each sprint.

The next major version is typically an unstable environment and has major breaking changes. You are welcome to pull this version down for local development and experimentation, but we generally recommend against using it in production until the first stable version has been released.

Developer Documentation

License

The Workday Canvas Kits are licensed under the Apache 2.0 License.

Supported Browsers

  • Microsoft Edge: last 2 versions
  • Mozilla Firefox: last 2 versions
  • Google Chrome: last 2 versions
  • Apple Safari: last 2 versions
  • Opera: last 2 versions

Thank you

Visual Testing by ChromaticQA

Builds by Github Actions

Extension points exported contracts — how you extend this code

BaseHook (Interface)
Simplify and speed up inference by capturing types in the signature itself
modules/react/common/lib/utils/components.ts
LoginSchema (Interface)
(no doc)
modules/preview-react/_examples/stories/mdx/examples/TextInputWithReactHookForm.tsx
StyleTransformerOptions (Interface)
(no doc)
modules/styling-transform/lib/styleTransform.ts
PopupStackItem (Interface)
(no doc)
modules/popup-stack/lib/PopupStack.ts
CSSOthersObject (Interface)
(no doc)
modules/styling/lib/cs.ts
StoryConfig (Interface)
(no doc)
modules/mcp/lib/index.ts
AIIngressButtonProps (Interface)
(no doc)
modules/labs-react/ai-ingress-button/lib/AIIngressButton.tsx
InstallBlockProps (Interface)
(no doc)
modules/docs/mdx/installBlock.tsx

Core symbols most depended-on inside this repo

px2rem
called by 450
modules/styling/lib/px2rem.ts
createStyles
called by 428
modules/styling/lib/cs.ts
createStencil
called by 270
modules/styling/lib/cs.ts
cssVar
called by 234
modules/styling/lib/cs.ts
createComponent
called by 197
modules/react/common/lib/utils/components.ts
createProgramFromSource
called by 128
modules/styling-transform/spec/createProgramFromSource.ts
createProgramFromSource
called by 123
modules/docs/docgen/spec/createProgramFromSource.ts
parse
called by 120
modules/docs/docgen/docParser.ts

Shape

Function 2,087
Interface 340
Method 41
Class 14
Enum 8

Languages

TypeScript100%

Modules by API surface

modules/docs/docgen/traversals.ts197 symbols
modules/docs/docgen/docParser.ts43 symbols
modules/styling/lib/cs.ts35 symbols
modules/docs/docgen/docTypes.ts30 symbols
modules/popup-stack/lib/PopupStack.ts26 symbols
modules/react/collection/lib/useCursorListModel.tsx25 symbols
test-utils/testing-library__jest-dom.d.ts24 symbols
modules/docs/lib/widgetUtils.tsx21 symbols
modules/react/collection/lib/useListLoader.ts20 symbols
modules/react/common/lib/utils/components.ts17 symbols
modules/docs/docgen/plugins/enhancedComponentParser.ts17 symbols
modules/react/collection/lib/useOverflowListModel.tsx13 symbols

For agents

$ claude mcp add canvas-kit \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page