diff --git a/gatsby-ssr.js b/gatsby-ssr.js
index e4938887d4f..ffc4fa9e5aa 100644
--- a/gatsby-ssr.js
+++ b/gatsby-ssr.js
@@ -61,6 +61,10 @@ export const onRenderBody = ({ setHeadComponents, setPostBodyComponents }) => {
name="twitter:creator"
content="@_carbondesign"
/>,
+ ,
]);
setPostBodyComponents([
diff --git a/package.json b/package.json
index ed76333479d..029fef7b53c 100644
--- a/package.json
+++ b/package.json
@@ -38,9 +38,9 @@
],
"dependencies": {
"@carbon/charts-react": "0.55.0",
- "@carbon/icons-react": "^11.48.0",
- "@carbon/pictograms": "^12.39.0",
- "@carbon/pictograms-react": "^11.65.0",
+ "@carbon/icons-react": "^11.50.0",
+ "@carbon/pictograms": "^12.41.0",
+ "@carbon/pictograms-react": "^11.67.0",
"@loadable/babel-plugin": "^5.16.1",
"@loadable/component": "^5.16.4",
"codesandbox": "^2.2.3",
diff --git a/src/components/ComponentOverview/ComponentOverview.js b/src/components/ComponentOverview/ComponentOverview.js
index 79952d85e7c..5f3af7a876f 100644
--- a/src/components/ComponentOverview/ComponentOverview.js
+++ b/src/components/ComponentOverview/ComponentOverview.js
@@ -2,14 +2,16 @@
import React from 'react';
import { Link } from 'gatsby';
import componentList from '../../data/components.json';
+import { Tag } from '@carbon/react';
// only display components where overview is true in the data
const filteredComponentList = componentList.components.filter(
(item) => item.overview !== false
);
+
class ComponentOverview extends React.Component {
renderItems = (currentItem) => {
- const { component } = currentItem;
+ const { component, featureFlag } = currentItem;
let componentUrl;
if (component === 'Multiselect') {
componentUrl = '/components/dropdown/usage';
@@ -39,7 +41,12 @@ class ComponentOverview extends React.Component {
alt={component}
className="component-item__img"
/>
-
{component}
+
{component}
{' '}
+ {featureFlag ? (
+
+ Feature flag
+
+ ) : null}
diff --git a/src/components/ComponentOverview/component-overview.scss b/src/components/ComponentOverview/component-overview.scss
index 3b337c6b4d8..48ddba54a23 100644
--- a/src/components/ComponentOverview/component-overview.scss
+++ b/src/components/ComponentOverview/component-overview.scss
@@ -117,6 +117,13 @@ $hover-ui: #e5e5e5;
text-align: left;
display: flex;
position: absolute;
- top: 1rem;
- left: 1rem;
+ top: $spacing-05;
+ left: $spacing-05;
+}
+
+.component-tag--feature-flag {
+ position: absolute;
+ bottom: $spacing-05;
+ left: $spacing-05;
+ margin: 0;
}
diff --git a/src/components/KalturaVideo/KalturaVideo.js b/src/components/KalturaVideo/KalturaVideo.js
new file mode 100644
index 00000000000..7cedfa7449a
--- /dev/null
+++ b/src/components/KalturaVideo/KalturaVideo.js
@@ -0,0 +1,45 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+
+/**
+ * KalturaVideo component: A video player container for Kaltura videos.
+ *
+ * @param {object} videoProps - KalturaVideo component props
+ * @param {string} videoProps.videoid - The ID of the Kaltura video to be played.
+ * @param {boolean} videoProps.hideCaption - Determines if caption should be hidden.
+ * @returns {JSX.Element} JSX element containing the video player container.
+ */
+const KalturaVideo = ({ videoid, hideCaption = false }) => {
+ let videoProps = {
+ 'video-id': videoid,
+ };
+
+ if (hideCaption) {
+ videoProps['hide-caption'] = true;
+ }
+
+ return (
+
+
+
+ );
+};
+
+/**
+ * @typedef {object} KalturaVideoProps
+ *
+ * @property {string} videoid - The ID of the Kaltura video to be played.
+ */
+KalturaVideo.propTypes = {
+ hideCaption: PropTypes.bool,
+ videoid: PropTypes.string.isRequired,
+};
+
+/**
+ * @type {{hideCaption: boolean}}
+ */
+KalturaVideo.defaultProps = {
+ hideCaption: false,
+};
+
+export default KalturaVideo;
diff --git a/src/components/KalturaVideo/index.js b/src/components/KalturaVideo/index.js
new file mode 100644
index 00000000000..2e0c6962167
--- /dev/null
+++ b/src/components/KalturaVideo/index.js
@@ -0,0 +1,3 @@
+import KalturaVideo from './KalturaVideo';
+
+export default KalturaVideo;
diff --git a/src/components/MdxIcon/icons/carbon.svg b/src/components/MdxIcon/icons/carbon.svg
new file mode 100644
index 00000000000..cb837d6d494
--- /dev/null
+++ b/src/components/MdxIcon/icons/carbon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/components/MdxIcon/index.js b/src/components/MdxIcon/index.js
index f04abf0fe27..2a81377303e 100644
--- a/src/components/MdxIcon/index.js
+++ b/src/components/MdxIcon/index.js
@@ -19,8 +19,10 @@ import medium from './icons/medium.svg';
import sass from './icons/sass.png';
import figma from './icons/figma.svg';
import yourlearning from './icons/yourlearning.svg';
+import carbon from './icons/carbon.svg';
const localIcons = {
+ carbon,
sketch,
ase,
codesandbox,
diff --git a/src/data/components.json b/src/data/components.json
index fa77794755d..b508e8cbb46 100644
--- a/src/data/components.json
+++ b/src/data/components.json
@@ -298,12 +298,14 @@
},
{
"component": "Menu buttons",
+ "featureFlag": true,
"testing": {
"screenreader": "manual"
}
},
{
"component": "Modal",
+ "featureFlag": true,
"testing": {
"screenreader": "manual"
}
@@ -317,6 +319,7 @@
},
{
"component": "Notification",
+ "featureFlag": true,
"testing": {
"screenreader": "manual"
}
@@ -408,6 +411,7 @@
},
{
"component": "Structured list",
+ "featureFlag": true,
"testing": {
"screenreader": "manual"
}
@@ -447,6 +451,7 @@
},
{
"component": "Tile",
+ "featureFlag": true,
"testing": {
"screenreader": "manual"
}
@@ -479,6 +484,7 @@
},
{
"component": "Treeview",
+ "featureFlag": true,
"testing": {
"screenreader": "manual"
}
diff --git a/src/data/guidelines/color-tokens.js b/src/data/guidelines/color-tokens.js
index 19cccabb1d8..3e40f210347 100644
--- a/src/data/guidelines/color-tokens.js
+++ b/src/data/guidelines/color-tokens.js
@@ -4054,7 +4054,7 @@ const colorTokens = {
},
g90: {
name: 'Gray 80',
- hex: '#8d8d8d',
+ hex: '#393939',
},
g100: {
name: 'Gray 90',
@@ -4075,7 +4075,7 @@ const colorTokens = {
},
g90: {
name: 'Gray 80',
- hex: '#8d8d8d',
+ hex: '#393939',
},
g100: {
name: 'Gray 90',
@@ -4096,7 +4096,7 @@ const colorTokens = {
},
g90: {
name: 'Gray 80',
- hex: '#8d8d8d',
+ hex: '#393939',
},
g100: {
name: 'Gray 90',
@@ -4108,16 +4108,16 @@ const colorTokens = {
role: ['Warning low contrast notification background'],
value: {
white: {
- name: 'Yellow 30, White',
- hex: '#f1c21b, #ffffff',
+ name: 'Yellow 10',
+ hex: '#fcf4d6',
},
g10: {
- name: 'Yellow 30, White',
- hex: '#f1c21b, #ffffff',
+ name: 'Yellow 10',
+ hex: '#fcf4d6',
},
g90: {
name: 'Gray 80',
- hex: '#8d8d8d',
+ hex: '#393939',
},
g100: {
name: 'Gray 90',
diff --git a/src/data/nav-items.yaml b/src/data/nav-items.yaml
index 477a17e74b0..a19dd7badef 100644
--- a/src/data/nav-items.yaml
+++ b/src/data/nav-items.yaml
@@ -42,11 +42,9 @@
- title: Contributing
pages:
- title: Get started
- path: /contributing/get-started/
- - title: Code
- path: /contributing/code/
- - title: Design
- path: /contributing/design/
+ path: /contributing/get-started/overview
+ - title: Component checklist
+ path: /contributing/component-checklist/
- title: Documentation
path: /contributing/documentation/
- title: Migrating
diff --git a/src/pages/all-about-carbon/releases.mdx b/src/pages/all-about-carbon/releases.mdx
index 85a904c46fd..2c6acbded05 100755
--- a/src/pages/all-about-carbon/releases.mdx
+++ b/src/pages/all-about-carbon/releases.mdx
@@ -62,6 +62,8 @@ redesign product UIs and begin a migration plan to comply with IBM brand
experience standards. For more details about this release, see our
[v10 release page](https://v10.carbondesignsystem.com/help/migration-guide/overview).
+As of September 30, 2024, all v10 assets have been deprecated.
+
## Release history
{/* prettier-ignore-start */}
diff --git a/src/pages/all-about-carbon/the-carbon-ecosystem.mdx b/src/pages/all-about-carbon/the-carbon-ecosystem.mdx
index bb8f53fee04..5d17f7f9d6f 100755
--- a/src/pages/all-about-carbon/the-carbon-ecosystem.mdx
+++ b/src/pages/all-about-carbon/the-carbon-ecosystem.mdx
@@ -68,7 +68,7 @@ _Some of this content is accessible to IBMers only._
href="/community/component-index/"
>
-![Carbon icon](images/ecosystem/carbon.svg)
+
@@ -90,7 +90,7 @@ _Some of this content is accessible to IBMers only._
href="/community/patterns/"
>
-![Carbon icon](images/ecosystem/carbon.svg)
+
diff --git a/src/pages/all-about-carbon/what-is-carbon.mdx b/src/pages/all-about-carbon/what-is-carbon.mdx
index 248681d729b..25df077fc95 100755
--- a/src/pages/all-about-carbon/what-is-carbon.mdx
+++ b/src/pages/all-about-carbon/what-is-carbon.mdx
@@ -6,6 +6,8 @@ description:
consists of working code, design tools, and more.
---
+import KalturaVideo from 'components/KalturaVideo';
+
Carbon is IBM's open source design system for products and digital experiences.
@@ -52,7 +54,7 @@ Learn about Carbon and its history. This video covers how the IBM Design
Language is applied to Carbon, how Carbon interacts with domain level guidance,
and what it means to be an open source design system.
-
+
## How Carbon works
@@ -93,7 +95,7 @@ primary maintainers:
- [Elements](https://github.com/carbon-design-system/carbon): Carbon team
- [React](https://github.com/carbon-design-system/carbon/tree/main/packages/react):
Carbon team
-- [Web Components](https://github.com/carbon-design-system/carbon-for-ibm-dotcom/tree/main/packages/carbon-web-components):
+- [Web Components](https://github.com/carbon-design-system/carbon/tree/main/packages/web-components):
Carbon team
- [Angular](https://angular.carbondesignsystem.com/): Community maintained
- [Vue](https://github.com/carbon-design-system/carbon-components-vue):
diff --git a/src/pages/all-about-carbon/who-uses-carbon.mdx b/src/pages/all-about-carbon/who-uses-carbon.mdx
index f8956e80298..c7964a3725b 100755
--- a/src/pages/all-about-carbon/who-uses-carbon.mdx
+++ b/src/pages/all-about-carbon/who-uses-carbon.mdx
@@ -280,5 +280,4 @@ Here are some ways people in support roles can begin engaging with Carbon:
- Report issues in these primary support Slack channels:
- [#carbon-design-system](https://ibm-studios.slack.com/messages/C0M053VPT/)
- - [#carbon-components](https://ibm-studios.slack.com/archives/C046Y0YUD)
- [#carbon-react](https://ibm-studios.slack.com/archives/C2K6RFJ1G)
diff --git a/src/pages/community/component-index.mdx b/src/pages/community/component-index.mdx
index a17369da8c2..419b8d1b425 100644
--- a/src/pages/community/component-index.mdx
+++ b/src/pages/community/component-index.mdx
@@ -26,7 +26,7 @@ patterns, functions, and templates that once lived here in the community index.
href="https://next.carbondesignsystem.com/assets/components"
>
-![Carbon icon](/images/carbon.svg)
+
@@ -38,7 +38,7 @@ patterns, functions, and templates that once lived here in the community index.
href="https://next.carbondesignsystem.com/assets/patterns"
>
-![Carbon icon](/images/carbon.svg)
+
@@ -50,7 +50,7 @@ patterns, functions, and templates that once lived here in the community index.
href="https://next.carbondesignsystem.com/assets/functions"
>
-![Carbon icon](/images/carbon.svg)
+
@@ -62,7 +62,7 @@ patterns, functions, and templates that once lived here in the community index.
href="https://next.carbondesignsystem.com/assets/templates"
>
-![Carbon icon](/images/carbon.svg)
+
diff --git a/src/pages/components/UI-shell-header/code.mdx b/src/pages/components/UI-shell-header/code.mdx
index c4459342aa4..45ff2abc8d9 100644
--- a/src/pages/components/UI-shell-header/code.mdx
+++ b/src/pages/components/UI-shell-header/code.mdx
@@ -17,9 +17,9 @@ the Storybooks for each framework below.
-
diff --git a/src/pages/components/UI-shell-left-panel/code.mdx b/src/pages/components/UI-shell-left-panel/code.mdx
index 1db2653ba38..efa1fad6f75 100644
--- a/src/pages/components/UI-shell-left-panel/code.mdx
+++ b/src/pages/components/UI-shell-left-panel/code.mdx
@@ -19,7 +19,7 @@ see the Storybooks for each framework below.
diff --git a/src/pages/components/UI-shell-right-panel/code.mdx b/src/pages/components/UI-shell-right-panel/code.mdx
index 321254e1d28..b909f677594 100644
--- a/src/pages/components/UI-shell-right-panel/code.mdx
+++ b/src/pages/components/UI-shell-right-panel/code.mdx
@@ -19,7 +19,7 @@ documentation, see the Storybooks for each framework below.
diff --git a/src/pages/components/ai-label/code.mdx b/src/pages/components/ai-label/code.mdx
index 746977516b9..c14c87f184c 100755
--- a/src/pages/components/ai-label/code.mdx
+++ b/src/pages/components/ai-label/code.mdx
@@ -17,7 +17,7 @@ documentation, see the Storybooks for each framework below.
diff --git a/src/pages/components/breadcrumb/code.mdx b/src/pages/components/breadcrumb/code.mdx
index 4fc494412ae..d228c8b7d96 100755
--- a/src/pages/components/breadcrumb/code.mdx
+++ b/src/pages/components/breadcrumb/code.mdx
@@ -19,7 +19,7 @@ usage documentation, see the Storybooks for each framework below.
diff --git a/src/pages/components/checkbox/code.mdx b/src/pages/components/checkbox/code.mdx
index af72a99a671..35c6ecc69e2 100755
--- a/src/pages/components/checkbox/code.mdx
+++ b/src/pages/components/checkbox/code.mdx
@@ -19,7 +19,7 @@ documentation, see the Storybooks for each framework below.
diff --git a/src/pages/components/file-uploader/code.mdx b/src/pages/components/file-uploader/code.mdx
index 0a8c126bc30..eb64c23f936 100755
--- a/src/pages/components/file-uploader/code.mdx
+++ b/src/pages/components/file-uploader/code.mdx
@@ -19,7 +19,7 @@ usage documentation, see the Storybooks for each framework below.
diff --git a/src/pages/components/inline-loading/code.mdx b/src/pages/components/inline-loading/code.mdx
index da9a42fa314..065913d017c 100755
--- a/src/pages/components/inline-loading/code.mdx
+++ b/src/pages/components/inline-loading/code.mdx
@@ -18,7 +18,7 @@ usage documentation, see the Storybooks for each framework below.
diff --git a/src/pages/components/menu-buttons/accessibility.mdx b/src/pages/components/menu-buttons/accessibility.mdx
index d59f6515a2d..39227a182e5 100644
--- a/src/pages/components/menu-buttons/accessibility.mdx
+++ b/src/pages/components/menu-buttons/accessibility.mdx
@@ -27,7 +27,7 @@ incorporates accessibility.
## What Carbon provides
Carbon bakes keyboard operation into its components, improving the experience of
-blind users and others who operate via keyboard. Carbon also incorporates other
+blind users and others who operate via keyboard. Carbon incorporates other
accessibility considerations, some of which are described below.
### Keyboard interaction
diff --git a/src/pages/components/menu-buttons/code.mdx b/src/pages/components/menu-buttons/code.mdx
index 4207209e662..a1c94504bbd 100644
--- a/src/pages/components/menu-buttons/code.mdx
+++ b/src/pages/components/menu-buttons/code.mdx
@@ -4,6 +4,8 @@ title: Menu buttons
tabs: ['Usage', 'Style', 'Code', 'Accessibility']
---
+import { Tag } from '@carbon/react';
+
Preview the menu button, combo button, and overflow menu component with the
@@ -120,6 +122,7 @@ each framework below.
>
+Feature flag
@@ -158,6 +161,18 @@ each framework below.
+### Feature flags
+
+A [feature flag](/components/overview/feature-flags/) has been added to the
+overflow menu variant of menu buttons to improve accessibility and changes parts
+of its functionality, not its visual appearance. For more code-specific feature
+flag information, refer to the
+[@carbon/react](https://react.carbondesignsystem.com/?path=/docs/experimental-feature-flags-overflowmenu--overview)
+framework.
+
+The `enable-v12-overflowmenu` flag improves accessibility by more closely
+following the APG pattern for Menu and supports all the new Menu primitives.
+
## Live demo
+Feature flag
+
Menu buttons, including menu buttons, combo buttons, and overflow menus, open a
menu with a list of interactive options.
@@ -85,6 +88,15 @@ avoids cluttering the main interface with too many options.
| [Combo button](#combo-button) | Use a combo button when screen real estate is limited and one of the actions has particular importance. They are usually used in the page header. |
| [Overflow menu](#overflow-menu) | Use an overflow menu when additional options are available to the user and there is a space constraint. They are usually used in rows or cards. |
+### Feature flags
+
+A [feature flag](/components/overview/feature-flags/) has been added to the
+overflow menu variant of menu buttons to improve accessibility and changes parts
+of its functionality, not its visual appearance. For code-specific feature flag
+information, refer to the [Code](/components/menu-buttons/code/) tab. The
+current overflow menu is not being deprecated, but teams are encouraged to use
+the feature flag overflow menu for their products moving forward.
+
## Formatting
### Anatomy
diff --git a/src/pages/components/menu/accessibility.mdx b/src/pages/components/menu/accessibility.mdx
index de6707f853e..5178f7b93d1 100644
--- a/src/pages/components/menu/accessibility.mdx
+++ b/src/pages/components/menu/accessibility.mdx
@@ -6,10 +6,85 @@ tabs: ['Usage', 'Style', 'Code', 'Accessibility']
import A11yStatus from 'components/A11yStatus';
-
+
-**Coming soon!** This page is a work in progress.
+No accessibility annotations are needed for menus, but keep these considerations
+in mind if you are modifying Carbon or creating a custom component.
-
+
+
+
+
+What Carbon provides
+Development considerations
+
+
+
+## What Carbon provides
+
+Carbon bakes keyboard operation into its components, improving the experience of
+blind users and others who operate via keyboard. Carbon incorporates many other
+accessibility considerations, some of which are described below.
+
+### Keyboard interaction
+
+The menu is reached by `Tab`. When the menu is open, the first item takes focus.
+Use the `Up` and `Down` arrow keys to navigate between menu items.
+
+
+
+
+
+![example of menu keyboard interaction](images/accessibility-menu-1.png)
+
+
+ Menu is reached by Tab and when opened, the first menu item takes focus. Arrow
+ keys move focus.
+
+
+
+
+
+Pressing `Space` or `Enter` on a focused menu item activates it and collapses
+the menu. Pressing `Space` or `Enter` on a submenu opens it. A submenu can also
+be opened and closed using the right and left arrow keys respectively. When the
+menu or submenu is open, the first item takes focus. An activated menu item can
+have different results depending on its functionality. If the item is a link, it
+launches the selection. If the item is selectable, it selects or deselects the
+item. The menu item retains its selected or unselected state when the menu is
+opened again.
+
+
+
+
+![example of menu keyboard interaction](images/accessibility-menu-2.png)
+
+
+ Space and Enter keys activates, selects, or deselects the menu item with
+ focus. A submenu is opened and closed with the right and left arrow keys
+ respectively.
+
+
+
+
+
+## Development considerations
+
+Keep these considerations in mind if you are modifying Carbon or creating a
+custom component.
+
+- Each menu, including nested menus, are `ul` elements with `role="menu"`.
+- Menu items are `li` elements with `role="menuitem"`.
+- If a Menu item contains a sub-menu, it is given `aria-haspopup="true"` and
+ `aria-expanded` of true or false depending on if the sub-menu is open/visible.
+- Selectable menu items are given `role="menuitemcheckbox"`.
+- Menu item groups are `li` elements with `role="group"`.
+- Menu item radio groups get `role="menuitemradio"`.
+- Menu items with really long labels can get truncated depending on the screen
+ size. This label will be exposed by a browser rendered tooltip on hover or
+ focus.
+- Menu implements the
+ [menu design pattern](https://www.w3.org/WAI/ARIA/apg/patterns/menubar/)
+ defined in the ARIA Authoring Practices Guide (APG).
diff --git a/src/pages/components/menu/code.mdx b/src/pages/components/menu/code.mdx
index d4a9b089f05..8b81567b2c0 100644
--- a/src/pages/components/menu/code.mdx
+++ b/src/pages/components/menu/code.mdx
@@ -70,7 +70,7 @@ documentation, see the Storybooks for each framework below.
variants={[
{
label: 'Menu',
- variant: 'components-context-menu--default',
+ variant: 'components-menu--playground',
},
]}
/>
diff --git a/src/pages/components/menu/images/accessibility-menu-1.png b/src/pages/components/menu/images/accessibility-menu-1.png
new file mode 100644
index 00000000000..2156d222e88
Binary files /dev/null and b/src/pages/components/menu/images/accessibility-menu-1.png differ
diff --git a/src/pages/components/menu/images/accessibility-menu-2.png b/src/pages/components/menu/images/accessibility-menu-2.png
new file mode 100644
index 00000000000..20ed537ea73
Binary files /dev/null and b/src/pages/components/menu/images/accessibility-menu-2.png differ
diff --git a/src/pages/components/menu/images/usage-menu-RTL.png b/src/pages/components/menu/images/usage-menu-RTL.png
index 5702114790d..438b63beaab 100644
Binary files a/src/pages/components/menu/images/usage-menu-RTL.png and b/src/pages/components/menu/images/usage-menu-RTL.png differ
diff --git a/src/pages/components/menu/images/usage-menu-overflow-truncate.png b/src/pages/components/menu/images/usage-menu-overflow-truncate.png
index d374af83c5d..9cd6da84bf9 100644
Binary files a/src/pages/components/menu/images/usage-menu-overflow-truncate.png and b/src/pages/components/menu/images/usage-menu-overflow-truncate.png differ
diff --git a/src/pages/components/menu/usage.mdx b/src/pages/components/menu/usage.mdx
index cfb5b060f17..a7c55ad0d91 100644
--- a/src/pages/components/menu/usage.mdx
+++ b/src/pages/components/menu/usage.mdx
@@ -328,7 +328,8 @@ including the direction of the caret and keyboard shortcuts.
#### Overflow
Consider using short and precise labels for menu items. However, when deciding
-to truncate long menu items, use a tooltip on hover to reveal the full text.
+to truncate long menu items, a browser rendered title tooltip will reveal the
+full text on hover.
diff --git a/src/pages/components/modal/code.mdx b/src/pages/components/modal/code.mdx
index 94665d41b38..11f2911a983 100755
--- a/src/pages/components/modal/code.mdx
+++ b/src/pages/components/modal/code.mdx
@@ -6,6 +6,8 @@ description:
tabs: ['Usage', 'Style', 'Code', 'Accessibility']
---
+import { Tag } from '@carbon/react';
+
Preview the modal component with the React live demo. For detailed code usage
@@ -23,6 +25,7 @@ documentation, see the Storybooks for each framework below.
>
+Feature flag
@@ -58,6 +61,20 @@ documentation, see the Storybooks for each framework below.
+### Feature flags
+
+A [feature flag](/components/overview/feature-flags/) has been added to modal to
+improve accessibility and changes parts of its functionality, not its visual
+appearance. For more code-specific feature flag information, refer to the
+[@carbon/react](https://react.carbondesignsystem.com/?path=/docs/experimental-feature-flags-modal--overview)
+framework.
+
+The `enable-experimental-focus-wrap-without-sentinels` flag is a new approach to
+focus wrap behavior, modifying the DOM to no longer include hidden "sentinel
+nodes" that previously marked the beginning and end of the wrapped focus. This
+behavior considers all interactive child nodes and wraps focus based on their
+tab order.
+
## Live demo
+Feature flag
+
Modals focus the user’s attention exclusively on one task or piece of
information via a window that sits on top of the page content.
@@ -119,6 +122,15 @@ destructive or irreversible then use a transactional danger modal.
| [Acknowledgment](/components/modal/usage#acknowledgment-modal) | System requires an acknowledgement of the information from the user. Contains only a single button, commonly "OK". |
| [Progress](/components/modal/usage#progress-modal) | Requires several steps to be completed before it can be closed. Contains a cancel, previous, and next/completion buttons. |
+### Feature flags
+
+A [feature flag](/components/overview/feature-flags/) has been added to modal to
+improve accessibility and changes parts of its functionality, not its visual
+appearance. For code-specific feature flag information, refer to the
+[Code](/components/modal/code/) tab. The current modal is not being deprecated,
+but teams are encouraged to use the feature flag modal for their products moving
+forward.
+
## Formatting
### Anatomy
diff --git a/src/pages/components/overview/accessibility-status.mdx b/src/pages/components/overview/accessibility-status.mdx
index 885b7ccadb8..33f186a6de3 100755
--- a/src/pages/components/overview/accessibility-status.mdx
+++ b/src/pages/components/overview/accessibility-status.mdx
@@ -3,7 +3,7 @@ title: Overview
description:
Components are one of the key building blocks of the design system. Each
component has been designed and coded to solve a specific UI problem.
-tabs: ['Components', 'Accessibility status']
+tabs: ['Components', 'Accessibility status', 'Feature flags']
---
import A11yStatus from 'components/A11yStatus';
diff --git a/src/pages/components/overview/components.mdx b/src/pages/components/overview/components.mdx
index 468d012046c..4a723ae3461 100755
--- a/src/pages/components/overview/components.mdx
+++ b/src/pages/components/overview/components.mdx
@@ -3,7 +3,7 @@ title: Overview
description:
Components are one of the key building blocks of the design system. Each
component has been designed and coded to solve a specific UI problem.
-tabs: ['Components', 'Accessibility status']
+tabs: ['Components', 'Accessibility status', 'Feature flags']
---
import ComponentOverview from 'components/ComponentOverview';
diff --git a/src/pages/components/overview/feature-flags.mdx b/src/pages/components/overview/feature-flags.mdx
new file mode 100644
index 00000000000..b9ff064245c
--- /dev/null
+++ b/src/pages/components/overview/feature-flags.mdx
@@ -0,0 +1,87 @@
+---
+title: Overview
+description:
+ Components are one of the key building blocks of the design system. Each
+ component has been designed and coded to solve a specific UI problem.
+tabs: ['Components', 'Accessibility status', 'Feature flags']
+---
+
+import { Launch } from '@carbon/icons-react';
+import { Link } from '@carbon/react';
+
+
+
+Feature flags enable new behaviors and styling, allowing users to opt-in to new
+breaking changes while staying on the current major version.
+
+
+
+
+
+Overview
+Components with feature flags
+How to implement
+
+
+
+## Overview
+
+When a new feature flag is introduced, it is set to false or "off" by default to
+ensure backward compatibility. We are not deprecating the current components but
+encourage all teams to use the new feature flag-enabled components in their
+products moving forward.
+
+## Components with feature flags
+
+The following components have feature flags, with changes related to either
+design or development.
+
+| Component | Design change | Code change |
+| ---------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Menu buttons (Overflow menu) | No design change | }>React |
+| Modal | No design change | }>React |
+| Notification | No design change | }>React |
+| Structured list | Usage tab | }>React |
+| Tile | Usage tab | }>React |
+| Tree view | No design change | }>React |
+
+## How to implement
+
+### Code
+
+Each framework handles feature flags differently. At the moment, only React has
+available feature flags. This may change in the future, check back later for
+updates related to all available feature flags.
+
+React
+
+The development specifics for feature flags in React can be found in the
+[@carbon/react](https://react.carbondesignsystem.com/?path=/docs/experimental-feature-flags--overview)
+framework.
+
+### Design
+
+Inside a design file, click on the component with a feature flag (A). In the
+properties panel, locate the **Feature flag** boolean property (B). By default,
+this feature is turned off, but can be toggled on to enable the feature flag.
+
+
+
+
+![Feature flag implementation in Figma](images/feature-flag-implementation-1.png)
+
+
+
+
+Additionally, when clicking on the **components details** (C) in the properties
+panel, a description of the feature flag, and a link to the component's usage
+guidance is provided for more information in the **Component documentation**
+window (D).
+
+
+
+
+![Feature flag implementation in Figma](images/feature-flag-implementation-2.png)
+
+
+
diff --git a/src/pages/components/overview/images/feature-flag-implementation-1.png b/src/pages/components/overview/images/feature-flag-implementation-1.png
new file mode 100644
index 00000000000..40f98a4f541
Binary files /dev/null and b/src/pages/components/overview/images/feature-flag-implementation-1.png differ
diff --git a/src/pages/components/overview/images/feature-flag-implementation-2.png b/src/pages/components/overview/images/feature-flag-implementation-2.png
new file mode 100644
index 00000000000..1b9094d60b3
Binary files /dev/null and b/src/pages/components/overview/images/feature-flag-implementation-2.png differ
diff --git a/src/pages/components/pagination/usage.mdx b/src/pages/components/pagination/usage.mdx
index eec0ce65a34..f631e96cdb1 100755
--- a/src/pages/components/pagination/usage.mdx
+++ b/src/pages/components/pagination/usage.mdx
@@ -96,9 +96,9 @@ Pagination can be used with a data table or on a page.
### Variants
| Variant | Usage |
-| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | --- |
+| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| [Pagination](#pagination) | The pagination variant is typically connected at the bottom of the data table component to help paginate large amounts of data. |
-| [Pagination nav](#pagination-nav) | The pagination nav variant is mainly used in on-page situations to help paginate either a whole page or sections of a page. | |
+| [Pagination nav](#pagination-nav) | The pagination nav variant is mainly used in on-page situations to help paginate either a whole page or sections of a page. |
## Formatting
diff --git a/src/pages/components/tree-view/code.mdx b/src/pages/components/tree-view/code.mdx
index 092d8d77006..af6a11339be 100755
--- a/src/pages/components/tree-view/code.mdx
+++ b/src/pages/components/tree-view/code.mdx
@@ -6,6 +6,8 @@ description:
tabs: ['Usage', 'Style', 'Code', 'Accessibility']
---
+import { Tag } from '@carbon/react';
+
Preview the tree view component with the React live demo. For detailed code
@@ -23,11 +25,24 @@ usage documentation, see the Storybooks for each framework below.
>
+Feature flag
+### Feature flags
+
+A [feature flag](/components/overview/feature-flags/) has been added to tree
+view to improve accessibility and changes parts of its functionality, not its
+visual appearance. For more code-specific feature flag information, refer to the
+[@carbon/react](https://react.carbondesignsystem.com/?path=/docs/experimental-feature-flags-treeview--overview)
+framework.
+
+The `enable-treeview-controllable` flag allows synchronizing the state
+of `selected` and `active` with the application and is a new controllable API of
+TreeView.
+
## Live demo
+Feature flag
+
A tree view is a hierarchical structure that provides nested levels of
navigation.
@@ -88,6 +91,15 @@ child nodes.
[breadcrumb](/components/breadcrumb/usage/) component can support an
information architecture several levels deep.
+### Feature flags
+
+A [feature flag](/components/overview/feature-flags/) has been added to tree
+view to improve accessibility and changes parts of its functionality, not its
+visual appearance. For code-specific feature flag information, refer to the
+[Code](/components/tree-view/code/) tab. The current tree view is not being
+deprecated, but teams are encouraged to use the feature flag tree view for their
+products moving forward.
+
## Formatting
### Anatomy
diff --git a/src/pages/contributing/component-checklist/index.mdx b/src/pages/contributing/component-checklist/index.mdx
new file mode 100644
index 00000000000..a1e24f037a9
--- /dev/null
+++ b/src/pages/contributing/component-checklist/index.mdx
@@ -0,0 +1,159 @@
+---
+title: Component checklist
+description:
+ When building components in the Carbon ecosystem, it’s essential that we align
+ on a “definition of done” to ensure all components are being built with the
+ same quality and assurance.
+---
+
+import { UnorderedList, ListItem } from '@carbon/react';
+
+
+
+When building components in the Carbon ecosystem, it’s essential that we align
+on a “definition of done” to ensure all components are being built with the same
+quality and assurance.
+
+
+
+
+
+Definition of done
+Design spec
+Code
+Documentation
+Design kit
+
+
+
+## Definition of done
+
+By aligning on the requirements of component stability, we can easily prioritize
+a backlog of work, share the status of assets with contributors and better
+differentiate when an asset is a component versus a pattern. We can also work
+backward from this strict list of requirements to inform where a component
+currently is in the
+[Product Development Lifecycle](https://w3.ibm.com/w3publisher/winning-products/how-we-work/product-development-lifecycle)
+(PDLC). With each phase, the component should progress in its completeness. Once
+it has reached stable and all items in the following checklists have been
+completed, then the component will be considered done.
+
+Note: Although not all published assets currently meet these requirements,
+moving forward, we’d like all new assets to adhere to them.
+
+| Status | PDLC Phase | Description |
+| ------------------- | ---------------- | ------------------------------------------------------------------------------------ |
+| `Draft` | Discovery | Partially complete, ready for validation. |
+| `Preview candidate` | Discovery | Partially complete, with measurable results, stakeholders, and clear business value. |
+| `Preview` | Delivery | Mostly complete, changes possible based on feedback, available to use in production. |
+| `Stable` | Launch and scale | Complete across code, kit, docs, design, and ready for production use. |
+
+## Design spec
+
+The design specification (spec) is the blueprint used by developers to build the
+component in code and for designers making the component in Figma. It is
+referenced as the source of truth for the visual appearance and functionality of
+a component. Having an accurate and detailed design spec ensures the component
+will be built and represented consistently across experiences.
+
+
+
+
+| Requirement | Details | Why this matters |
+| ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **Color tokens** | Design specs only use color tokens available in the system.Design specs only contain colors that are tokenized.Color token usage is correct according to our documentation and matches applications across the system. | Color tokens are essential to the reusability and scalability of the system; they support a11y requirements and reduce the maintenance burden. They also allow for consistent application of color across the system, and make color functionalities like theming possible. |
+| **Type tokens** | Design specs only use type tokens available in the system.Design specs only contain type styles and sizes that are tokenized.Type token usage is correct and consistent with matching applications across the system. | Type tokens are essential to the reusability and scalability of the system and they reduce the maintenance burden. They also allow for consistent type use across the system. |
+| **Structure and measurements** | Design specs only use spacing tokens available in the system.Clearly annotate spacing and alignment for all design elements.Design specs include all possible configurations such as sizes and content configurations. | Detailed structure and measurement specs allow developers to build assets quicker and ensure that designs are accurately represented in the code. |
+| **Interaction states** | Designs include specs for states such as hover, focus, selected, disabled, read-only, error, warning, etc. | Each state of the component needs to be represented in the specification to ensure that accessibility requirements and quality of the designs are accurately represented in the code. |
+| **Behaviors** | Designs include specs for behaviors such as responsiveness, content overflow or reflow, expansion, scrolling, etc. | Developers need to understand how the asset will behave when a user interacts with it. Detailed annotations and specs of the various behaviors will ensure that the designs are accurately represented in the code. |
+| **Accessibility** | All text colors pass 4.5:1 color contrast with the exceptions of disabled states.All interactive non-text elements meet 3:1 contrast.Flow of focus is clearly documented. | IBM products must meet WCAG AA accessibility standards. |
+
+
+
+
+## Code
+
+In order for code to be stable, it must meet the requirements in the table
+below. Preview code should plan for these requirements, but does not need to
+meet them in the discovery or delivery phases. For additional guidance how we
+prefer to write code for the Carbon Design System, see the
+[Carbon Style Guide](https://github.com/carbon-design-system/carbon/blob/main/docs/style.md).
+
+
+
+
+| Requirement | Details | Why this matters |
+| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **API guiding principles** | Prioritize end user: emphasize the consumer/dev experience above difficulty of implementation. Interoperability: support wide band coverage of multiple React versions, node LTS versions, etc. and favor framework/library agnostic approaches to component APIs and designs.Stability: always deprecate before removal, ensure long deprecation periods, consider the migration experience for developers. Composition: components should be broken down into logical pieces to support the many disparate configurations that are required by the business. Developer experience: consider how a developer will use this component; will they find it approachable or confusing? | Careful consideration of API design ensures that future changes to the system can be made in an iterative way that minimizes disruption. Developer experience and productivity can be heavily influenced by needlessly complex APIs. The business has a wide range of requirements and should meet as many of them as possible. Prioritize the user wherever possible — if you can make things easier for them by writing extra code, handling complexity internally, or taking care of a common concern, do so. It’s our job to contain chaos so that it’s easier and faster to build excellent software products. |
+| **Built to spec** | Every interaction spec’d should be implemented. The [design spec](/contributing/component-checklist/#design-spec) should match the implementation perfectly down to the pixel. | Thorough implementation with intense attention to detail is pivotal to maintaining pervasive design excellence within the system. This high bar of quality sets our system apart and drives adoption, user satisfaction, and overall outcomes. |
+| **Tokens** | Component styles use tokens available in the system. Component styles do not contain magic numbers or colors that are not tokenized. | Tokens are essential to the reusability and scalability of the system — they support a11y requirements and reduce the maintenance burden within the system. |
+| **Globalization** | All strings are configurable and parameterized (props) in a way that is agnostic and compatible with a wide range of g11n i18n solutions/libraries. | Ensures assets can be reused within products and offerings worldwide. |
+| **Responsiveness** | Component layout, functionality, and ux works on all device sizes from very large to ~320px wide. Component styles use media queries where needed. | Ensures assets work properly on small screens so that IBM products and offerings can be used on as many devices as possible. |
+| **Storybook** | A default and playground story exists in Storybook. | Ensures re-usable code and a demo are available. |
+| **Documentation** | Long-form documentation is provided in both storybook and the carbon website. | Usage examples in the Storybook do not answer all questions, cover all interactions, or provide pointed helpful information regarding the intended component usage and configuration. |
+| **Fully Typed/JSDoc** | Component has an interface with all props typed. Component interface is exported for use in consuming projects. | Ensures that components and assets are built using Typescript to attain the inherent benefits of strongly typed programming language, but also provides a best-in-class developer experience (particularly through intellisense), even for those not using TypeScript in their projects. |
+| **Codemods** | If the component/change will require migration by consuming teams, an automated code migration script should be written and made available through `@carbon/upgrade`. | Ensure that consumers using a given component will have a graceful experience when breaking changes occur. Also holds a lot of weight as to the perception of the system’s ability to adapt and innovate while maintaining a laser focus on stability. Reduces the cost spent by a team to migrate — compounded across all the teams we support across IBM this can have a significant impact on IBM’s bottom line in cost/productivity. |
+
+
+
+
+### Testing
+
+A crucial aspect to ensure continued quality of production stable code is
+testing. The following testing requirements must be met before a component can
+be considered stable.
+
+
+
+
+| Requirement | Details | Why this matters |
+| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **Unit testing** | Component API and functionality should be thoroughly tested using jest and testing-library (therefore in a jsdom environment). Component unit test coverage should meet and exceed 80% of functions, lines, statements, etc. | Validates and ensures that components work as they’re expected to and regressions are not introduced as changes are made. |
+| **Visual regression tests (VRT)** | Component has at least one test on the default story for VRT using Percy. Additional “problematic” or highly concerning component states, stories, viewport-widths can be covered by VRT. | Ensures that components do not visually regress as changes are made. This catches bugs early, avoids disruptive mistakes, and supports the overall stability of the system. |
+| **Accessibility verification tests (AVT)** | Component has one test of it’s default state checked by the [IBM Equal Access Accessibility Checker](https://www.ibm.com/able/toolkit/tools/#develop). Component has all additional “complex” states (open, closed, highlighted, expanded, focused, hovered, clicked, etc) checked by IBM Equal Access Accessibility Checker. | Ensures that components and assets are accessible. First and foremost this is a moral imperative; accessibility benefits everyone. It additionally supports the goal of IBM products and offerings being able to be sold and used in industries bound by law to have accessible experiences. |
+| **Screen reader/voiceover** | Component has been manually tested to read appropriately in JAWS, VoiceOver, and NVDA. | Ensures that components and assets are able to be used by disabled users who utilize screenreaders. First and foremost this is a moral imperative; accessibility benefits everyone. It additionally supports the goal of IBM products and offerings being able to be sold and used in industries bound by law to have accessible experiences. |
+
+
+
+
+## Documentation
+
+All components and patterns require usage, style, code, and accessibility
+guidance published on a Carbon ecosystem website. Carbon provides documentation
+templates to help ensure visual and content expectations. Additional guidance on
+creating layouts and images for website documentation can be found in the
+[image production guidelines](https://carbondesignsystem.com/designing/design-resources/#image-production-guidelines).
+
+
+
+
+| Requirement | Details | Why this matters |
+| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| **xxUsage docs** | [Single variant template](/contributing/documentation/#usage-template:-for-components-with-one-variant) _(last updated Q1 2024)_. [Multiple variant template](/contributing/documentation/#usage-template:-for-components-with-multiple-variants) _(last updated 2021)_. | The usage documentation helps describe when to use a component and how it works. |
+| **Style docs** | [Single variant template](/contributing/documentation/#style-template:-for-components-with-one-variant) _(last updated Q3 2024)_. [Multiple variant template](/contributing/documentation/#style-template:-for-components-with-multiple-variants) _(last updated Q3 2024)_. | The style documentation helps describe how a component looks, including visual specifications such as color, typography, structure, and size. |
+| **Code docs** | [Code template](/contributing/documentation/#code-template) _(last updated 2022)_. | The code documentation helps developers implement the component. It includes code snippets, dependencies, and version changes. Although Carbon developers write more detailed documentation in Storybook, they still provide several standard pieces of information on the Carbon website. |
+| **Accessibility docs** | [Accessibility template](/contributing/documentation/#accessibility-template) _(last updated 2023)_. | The published information, written by our A11y SMEs, helps users understand all the accessibility considerations that are baked into Carbon. |
+
+
+
+
+## Design kit
+
+Our
+[IBM Figma best practices](https://www.figma.com/design/4UYvy6eey28bD3IvtNF8xP/IBM-Documentation-Library?node-id=654-4435&t=67lxOP8nwgq7z2E1-0)
+are maintained, tracked, and peer-reviewed by IBM’s Figma guild. Although the
+guild is not part of the Carbon team, they are crucial partners in our
+governance model.
+
+
+
+
+| Requirement | Details | Why this matters |
+| ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **IBM Figma Guidelines** | Figma components follow the guidelines as defined in [IBM Figma Best Practices](https://www.figma.com/design/4UYvy6eey28bD3IvtNF8xP/IBM-Documentation-Library?node-id=654-4435&t=67lxOP8nwgq7z2E1-0).
The guidance includes topics on component properties, auto layout, styles, icons, item and base components, content, construction, and file organization. | This checklist ensures components are built correctly before merging into the main Figma branch. |
+| **IBM Figma Naming Convention** | Figma components follow the component naming convention documented in [IBM Figma Best Practices](https://www.figma.com/design/4UYvy6eey28bD3IvtNF8xP/IBM%C2%AE-Documentation-Library?m=auto&node-id=642-4479&t=1rSjk0nlj8wBV9aK-1). | The naming convention ensures that file architecture and component hierarchies are both standardized and intuitive for the user.
With this method we are able to have hierarchy between the final components, their bases, and their pieces when we traverse through the assets/instance swapper panels while still being able to view the entire component name when searching. |
+| **Built to spec** | The Figma component should match the [design spec](/contributing/component-checklist/#design-spec) perfectly down to the pixel. Every interaction spec’d should be included in the Figma component. | Thorough implementation with intense attention to detail is pivotal to maintaining pervasive design excellence within the system. This high bar of quality sets our system apart and drives adoption, user satisfaction, and overall outcomes. |
+| **Published to a library** | A Figma component must be published to the appropriate IBM Figma library. Components built in the Carbon repo are published in [(V11) Carbon Design System](). | A published connected component ensures accurate use across products. It also allows for Figma analytics to understand adoption and usage better. |
+
+
+
diff --git a/src/pages/contributing/code.mdx b/src/pages/contributing/get-started/code.mdx
similarity index 98%
rename from src/pages/contributing/code.mdx
rename to src/pages/contributing/get-started/code.mdx
index 1dc5365732a..6cc5a76a922 100644
--- a/src/pages/contributing/code.mdx
+++ b/src/pages/contributing/get-started/code.mdx
@@ -1,8 +1,9 @@
---
-title: Code
+title: Getting started
description:
Code contributions can include anything from squashing bugs to adding feature
requests. Check out the instructions below to contribute code effectively.
+tabs: ['Overview', 'Code', 'Design']
---
export const Title = () => Contribute code;
diff --git a/src/pages/contributing/design.mdx b/src/pages/contributing/get-started/design.mdx
similarity index 98%
rename from src/pages/contributing/design.mdx
rename to src/pages/contributing/get-started/design.mdx
index ecc4a3499ff..bbc5a0f29c1 100644
--- a/src/pages/contributing/design.mdx
+++ b/src/pages/contributing/get-started/design.mdx
@@ -1,9 +1,10 @@
---
-title: Design
+title: Getting started
description:
Design contributions can involve anything from creating design specs for
feature requests to maintaining Figma libraries. Below you'll find tips and
best practices to get started.
+tabs: ['Overview', 'Code', 'Design']
---
export const Title = () => Contribute design;
diff --git a/src/pages/contributing/images/carbon-tutorial.gif b/src/pages/contributing/get-started/images/carbon-tutorial.gif
similarity index 100%
rename from src/pages/contributing/images/carbon-tutorial.gif
rename to src/pages/contributing/get-started/images/carbon-tutorial.gif
diff --git a/src/pages/contributing/images/combo-button.gif b/src/pages/contributing/get-started/images/combo-button.gif
similarity index 100%
rename from src/pages/contributing/images/combo-button.gif
rename to src/pages/contributing/get-started/images/combo-button.gif
diff --git a/src/pages/contributing/images/icon-only-switcher.gif b/src/pages/contributing/get-started/images/icon-only-switcher.gif
similarity index 100%
rename from src/pages/contributing/images/icon-only-switcher.gif
rename to src/pages/contributing/get-started/images/icon-only-switcher.gif
diff --git a/src/pages/contributing/images/left-hand-nav-delay.gif b/src/pages/contributing/get-started/images/left-hand-nav-delay.gif
similarity index 100%
rename from src/pages/contributing/images/left-hand-nav-delay.gif
rename to src/pages/contributing/get-started/images/left-hand-nav-delay.gif
diff --git a/src/pages/contributing/images/read-only-form-inputs.gif b/src/pages/contributing/get-started/images/read-only-form-inputs.gif
similarity index 100%
rename from src/pages/contributing/images/read-only-form-inputs.gif
rename to src/pages/contributing/get-started/images/read-only-form-inputs.gif
diff --git a/src/pages/contributing/images/two-handle-slider.gif b/src/pages/contributing/get-started/images/two-handle-slider.gif
similarity index 100%
rename from src/pages/contributing/images/two-handle-slider.gif
rename to src/pages/contributing/get-started/images/two-handle-slider.gif
diff --git a/src/pages/contributing/get-started.mdx b/src/pages/contributing/get-started/overview.mdx
similarity index 84%
rename from src/pages/contributing/get-started.mdx
rename to src/pages/contributing/get-started/overview.mdx
index 53161e5dcae..5f564adb252 100644
--- a/src/pages/contributing/get-started.mdx
+++ b/src/pages/contributing/get-started/overview.mdx
@@ -1,9 +1,10 @@
---
-title: Get started
+title: Getting started
description:
- The Carbon Design System is made possible through a vibrant community of
- designers and developers. Anyone can contribute code, design, documentation,
- and ideas. Here's how you can contribute, too!
+ Design contributions can involve anything from creating design specs for
+ feature requests to maintaining Figma libraries. Below you'll find tips and
+ best practices to get started.
+tabs: ['Overview', 'Code', 'Design']
---
@@ -41,7 +42,7 @@ improved the React testing suite, created image production guidelines in Figma,
and so much more! Explore the gallery below to see a small sample of finished
projects.
-
+
-
+![Carbon Tutorial](/images/carbon-tutorial.gif)
@@ -66,11 +63,7 @@ projects.
readTime="Contributors: Kevin Camello, Matthew Oliveira"
href="https://github.com/carbon-design-system/carbon/issues/6337">
-
+![Two handle slider](/images/two-handle-slider.gif)
@@ -82,11 +75,7 @@ projects.
readTime="Contributor: Shankar V."
href="https://react.carbondesignsystem.com/?path=/story/components-ui-shell-sidenav--side-nav-rail-w-header">
-
+![Sidenav delay on hover](/images/left-hand-nav-delay.gif)
@@ -98,11 +87,7 @@ projects.
readTime="Contributors: Devin O’ Bryan, Mike Eaker, Lee Chase"
href="https://carbondesignsystem.com/patterns/read-only-states-pattern/">
-
+![Read-only states](/images/read-only-form-inputs.gif)
@@ -114,11 +99,7 @@ projects.
readTime="Contributor: Diana Tran"
href="https://react.carbondesignsystem.com/?path=/story/components-contentswitcher--icon-only">
-
+![Content Switcher: Icon only variant](/images/icon-only-switcher.gif)
@@ -130,11 +111,7 @@ projects.
readTime="Contributor: Jan Hassel"
href="https://react.carbondesignsystem.com/?path=/docs/components-combobutton--overview">
-
+![Combo Butto](/images/combo-button.gif)
@@ -164,7 +141,7 @@ Judy** Typescript
-**Chris Knabe** React Testing Library**
**Amaya Mali** Gantt chart
-**Tom Roach** Community support
**Eugene To **
+**Tom Roach** Community support
**Eugene To**
Figma
**Shankar Venkatachalam** Create React App
**Colleen Yates** lllustration Guild
@@ -192,6 +169,15 @@ solutions and then creating a design spec for developers.
[Here are issues](https://github.com/carbon-design-system/carbon/issues?q=is%3Aopen+is%3Aissue+label%3A%22needs%3A+community+contribution%22+)
in our enhancement backlog that need design or development work.
+### New components
+
+New components are a large multidiscipline contribution and must be contributed
+in phases to insure quality and business value. To propose a net new component,
+follow the [phased contribution process](/contributing/contribution-process) and
+complete all requirements in the
+[component checklist](contributing/component-checklist). All requirement
+categories must be completed before a component can be considered done.
+
### Design kits
This work is all about creating and updating reusable components in Figma.
@@ -226,8 +212,14 @@ on the IBM Design Language site.
## The process
-Whether you're contributing code, designs, or documentation, there's a process
-to follow. Here's what it looks like:
+Whether you’re contributing code, designs, or documentation, there’s a process
+to follow. For larger contributions like new components or patterns a more
+rigorous process must be followed to insure production level quality and
+business value. We have laid out the phases and criteria on the next page in
+[contribution process](contributing/contribution-process).
+
+For smaller contributions like small additions, enhancements, or bug fixes
+follow the process below.
### 1. Find a project to work on
@@ -262,7 +254,7 @@ Guild, Data Viz Guild, or office hours. In these sessions, it is common to share
work in progress and ask lots of questions. As you make progress, update your
GitHub issue.
-### 3. Review and publish
+### 3. Submit for review
#### Code deliverables
diff --git a/src/pages/data-visualization/flow-charts/index.mdx b/src/pages/data-visualization/flow-charts/index.mdx
index ee1d447b66c..e90bb36e3ae 100755
--- a/src/pages/data-visualization/flow-charts/index.mdx
+++ b/src/pages/data-visualization/flow-charts/index.mdx
@@ -75,21 +75,8 @@ your own layouts.
- [React](https://carbon-design-system.github.io/carbon-charts/react/?path=/story/diagrams--start-here)
- [Angular](https://carbon-design-system.github.io/carbon-charts/angular/?path=/story/diagrams--start-here)
-Here's an example using elkjs in react
-
-
+Here's an
+[example using elkjs in react](https://codesandbox.io/p/sandbox/carbon-charts-react-elkjs-diagram-b9xyp?file=%2Fsrc%2Findex.js&from-embed).
diff --git a/src/pages/deprecations.mdx b/src/pages/deprecations.mdx
new file mode 100644
index 00000000000..b8ee0b86332
--- /dev/null
+++ b/src/pages/deprecations.mdx
@@ -0,0 +1,144 @@
+---
+title: Deprecations
+description:
+ Stay informed on deprecated packages and assets in the Carbon Design System
+ with updates, migration guides, and resources for transitioning to the latest
+ supported versions.
+---
+
+
+
+Stay informed on deprecated packages and assets in the Carbon Design System with
+updates, migration guides, and resources for transitioning to the latest
+supported versions.
+
+
+
+
+
+carbon-components
+carbon-components-react
+v10 Elements packages
+carbon-icons
+Resources
+
+
+
+## carbon-components
+
+`carbon-components` reached it's end of support on September 30, 2024. This
+package will no longer receive updates.
+
+### What to use instead
+
+`carbon-components` is replaced by `@carbon/styles`, but most projects don't
+need to install `@carbon/styles` directly.
+
+If you're using `@carbon/react` or `@carbon/web-components`, you do not need to
+install `@carbon/styles`. All `@carbon/styles` assets are already available to
+you through those framework-specific packages.
+
+Library authors should use `@carbon/styles` if they do not already rely on a
+framework-variant package such as `@carbon/react`.
+
+### Migration
+
+For those using `carbon-components@10.x`, the
+[v11 migration guide](/migrating/guide/develop/) has all the details of how to
+update.
+
+For those using `carbon-components@11.x`, these versions are already a direct
+re-export of `@carbon/styles`. See the above section on what to use instead.
+
+For questions regarding this deprecation or how to migrate,
+[contact us](/help/contact-us/).
+
+## carbon-components-react
+
+`carbon-components-react` reached it's end of support on September 30, 2024.
+This package will no longer receive updates.
+
+### What to use instead
+
+`carbon-components-react` is replaced by `@carbon/react`.
+
+### Migration
+
+For those using `carbon-components-react@7.x`, the
+[v11 migration guide](/migrating/guide/develop/) has all the details of how to
+update.
+
+For those using `carbon-components-react@8.x`, these versions are already a
+direct re-export of `@carbon/react`. After installing `@carbon/react`, you can
+replace all imports and usages of `carbon-components-react` with
+`@carbon/react`. This should be an in-place update with no other changes
+required.
+
+For questions regarding this deprecation or how to migrate,
+[contact us](/help/contact-us/).
+
+## v10 Elements packages
+
+All v10 assets reached end of support on September 30, 2024, including v10.x
+ranges of elements packages. This includes:
+
+- `@carbon/colors@10.x`
+- `@carbon/elements@10.x`
+- `@carbon/grid@10.x`
+- `@carbon/layout@10.x`
+- `@carbon/motion@10.x`
+- `@carbon/themes@10.x`
+- `@carbon/type@10.x`
+
+### What to use instead
+
+The v11.x ranges of these packages should be used instead.
+
+### Migration
+
+The [v11 migration guide](/migrating/guide/develop/) has all the details of how
+to update.
+
+For questions regarding these deprecations or how to migrate,
+[contact us](/help/contact-us/).
+
+## carbon-icons
+
+The `carbon-icons` package reached end of support on March 31, 2022 when v11 was
+released. This package will no longer receive updates.
+
+### What to use instead
+
+To use icons from the Carbon Design System, you should install the appropriate
+library to use with your framework:
+
+| Package | Framework | Link |
+| :---------------------- | :----------------- | :------------------------------------------------------ |
+| `@carbon/icons-react` | React | [Link](https://npmjs.com/package/@carbon/icons-react) |
+| `@carbon/icons-angular` | Angular | [Link](https://npmjs.com/package/@carbon/icons-angular) |
+| `@carbon/icons-vue` | Vue | [Link](https://npmjs.com/package/@carbon/icons-vue) |
+| `carbon-icons-svelte` | Svelte | [Link](https://npmjs.com/package/carbon-icons-svelte) |
+| `@carbon/icons` | Vanilla JavaScript | [Link](https://npmjs.com/package/@carbon/icons) |
+
+### Migration
+
+The [v11 migration guide](/migrating/guide/develop/) has all the details of how
+to update.
+
+For questions regarding these deprecations or how to migrate,
+[contact us](/help/contact-us/).
+
+## Resources
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/designing/get-started.mdx b/src/pages/designing/get-started.mdx
index d9daa8dc9e1..fda745afdc9 100644
--- a/src/pages/designing/get-started.mdx
+++ b/src/pages/designing/get-started.mdx
@@ -40,18 +40,19 @@ guidance and components.
_For IBMers only:_
-IBMers should get a license for Figma, our primary design kit tool. You may also
-access tools we no longer support, Sketch, Adobe XD, and Axure, by heading to
-the [Design Toolbox](https://w3.ibm.com/design/toolbox/). However, we no longer
-maintain or update the kits for these tools. We recommend you migrate to Figma
-to get the most updated kits we offer.
+IBMers should get a license for Figma, our primary design kit tool. We no longer
+maintain or support the libraries in Sketch, Adobe XD, and Axure, but you can
+view the
+[w3 Apps Software Licenses](https://ibm.service-now.com/slm?id=toolbox_ibm&sys_id=823b779e1b047c508c6099f9bc4bcb4a)
+page to see license availability for these design tools if needed. We recommend
+you migrate to Figma to get our most updated kits.
diff --git a/src/pages/developing/dev-resources/index.mdx b/src/pages/developing/dev-resources/index.mdx
index 7d95520c4b5..818edaac993 100644
--- a/src/pages/developing/dev-resources/index.mdx
+++ b/src/pages/developing/dev-resources/index.mdx
@@ -48,7 +48,7 @@ your framework of choice.
+ href="https://github.com/carbon-design-system/carbon/tree/main/packages/web-components">
diff --git a/src/pages/developing/frameworks/web-components.mdx b/src/pages/developing/frameworks/web-components.mdx
index 0f42b375e2c..e8cc7fe1ebc 100644
--- a/src/pages/developing/frameworks/web-components.mdx
+++ b/src/pages/developing/frameworks/web-components.mdx
@@ -30,9 +30,6 @@ This library uses Custom Elements v1 and Shadow DOM v1 specs.
-For support, contact the
-[Carbon Web Components team](https://github.com/carbon-design-system/carbon-for-ibm-dotcom/issues/new/choose).
-
Info on Carbon Web Components v1 can be found
[here](https://v10.carbondesignsystem.com/developing/frameworks/web-components).
@@ -53,10 +50,10 @@ Info on Carbon Web Components v1 can be found
-
+
@@ -178,10 +175,10 @@ directly used once the script tag has been added to the page. For example: