`. If an `htmlFor` is provided, it will be a `
`.
@@ -50,7 +50,7 @@ It is best to provide `htmlFor` to both the FormGroup + inner form element to ma
-### Form Group States
+### FormGroup states
@@ -91,7 +91,7 @@ It is best to provide `htmlFor` to both the FormGroup + inner form element to ma
-### Form Group with infotip
+### FormGroup + InfoTip
A field can include [our existing `InfoTip`](/?path=/docs/atoms-tooltip--tool-tip).
diff --git a/packages/styleguide/stories/Atoms/FormElements/FormGroupLabel.stories.mdx b/packages/styleguide/stories/Atoms/FormElements/FormGroupLabel.stories.mdx
index 97c1095b0b..fe68ae2b76 100644
--- a/packages/styleguide/stories/Atoms/FormElements/FormGroupLabel.stories.mdx
+++ b/packages/styleguide/stories/Atoms/FormElements/FormGroupLabel.stories.mdx
@@ -22,7 +22,7 @@ import { Canvas, Meta, Story } from '@storybook/addon-docs/blocks';
-### Label Variants
+### Label variants
diff --git a/packages/styleguide/stories/Atoms/FormInputs/Checkbox.stories.mdx b/packages/styleguide/stories/Atoms/FormInputs/Checkbox.stories.mdx
index 6ecd6cc049..7b02852c7e 100644
--- a/packages/styleguide/stories/Atoms/FormInputs/Checkbox.stories.mdx
+++ b/packages/styleguide/stories/Atoms/FormInputs/Checkbox.stories.mdx
@@ -36,7 +36,7 @@ import { CheckboxExample } from './examples';
-### Controlled Checkboxes
+### Controlled checkboxes
Our Checkboxes are [controlled components](https://reactjs.org/docs/forms.html#controlled-components), so their checked value must be controlled by an external state and onChange, for example:
@@ -80,7 +80,7 @@ const CustomCheckbox: React.FC = ({
};
```
-### Input States
+### Input states
= ({
-### Spacing Variants
+### Spacing variants
If you need to checkboxes to fit into a smaller space, you can use our `tight` spacing prop for checkboxes that are a bit closer together.
-
+
-### Input Types
+### Input types
-### Input States
+### Input states
-### Form Groups + Inputs
+### FormGroup + Input
-### Custom Icons
+### Custom icons
You can use a custom icon (from gamut-icons) in your Input elements. The error and valid icons will overwrite the custom icon if those states are applied to the element.
-
+
-### Input States
+### Input states
-### Custom labels and InfoTips
+### Custom labels + InfoTip
The `label` is a `ReactNode`, making it customizable outside of a standard text label. If you are including an `InfoTip` , you should include it as the infotip prop to ensure it isn't repeated by screen readers.
diff --git a/packages/styleguide/stories/Atoms/FormInputs/Select.stories.mdx b/packages/styleguide/stories/Atoms/FormInputs/Select.stories.mdx
index 6514eebf45..d2d44a0e0e 100644
--- a/packages/styleguide/stories/Atoms/FormInputs/Select.stories.mdx
+++ b/packages/styleguide/stories/Atoms/FormInputs/Select.stories.mdx
@@ -56,7 +56,7 @@ export const selectObject = {
-### Select States
+### Select states
-### Select Size Variant
+### Select size variant
-### Form Group + Select
+### FormGroup + Select
-## Examples + Usage
+## Examples and usage
`SelectDropdown` has a larger JavaScript dependency size than our standard `Select` component so should not be used unless specified in designs. These dropdowns are optionally searchable through the `isSearchable` prop.
@@ -125,7 +125,7 @@ If you are using this in a standard form, `SelectDropdown` must be provided an `
-### Events and Controlled Components
+### Events and controlled components
Instead of a standard HTML Select event return, SelectDropdown returns the selected option. This is formatted as `{label: 'labelText', value: 'valueText' }`. Your event functions should be formatted as `(event) => changeHandler(event.value)` instead of `(event) => changeHandler(event.target.value)`.
@@ -162,7 +162,7 @@ export const CustomDropdown: React.FC = ({
};
```
-### Form Group + Select
+### FormGroup + SelectDropdown
`SelectDropdown` formats nicely in FormGroups and reflects error states. Make sure you provide an htmlFor to the `FormGroup` and a `name` to the `SelectDropdown` for maximum accessibility.
@@ -205,7 +205,7 @@ export const CustomDropdown: React.FC = ({
-### Size Variant
+### Size variant
We have a smaller SelectDropdown for more compact spaces.
@@ -372,12 +372,12 @@ You can chose how options will be shown in the dropdown. 6 is the default limit
-### SelectDropdown Option Variants
+### SelectDropdown option variants
You may need to add additional info to your dropdowns, like disabled options, option subtitles, or group dividers
-
+
{() => }
@@ -465,7 +465,7 @@ export const SelectDropdownOptionVariantsExample: React.FC = () => (
);
```
-### SelectDropdown Multiple Select
+### SelectDropdown multiple select
To add some pizzazz to your dropdown, you can add any of our gamut-icons to your options.
@@ -501,7 +501,7 @@ export const SelectDropdownMultipleExample: React.FC = () => (
);
```
-### SelectDropdown Option Icons
+### SelectDropdown option icons
To add some pizzazz to your dropdown, you can add any of our gamut-icons to your options.
diff --git a/packages/styleguide/stories/Atoms/FormInputs/TextArea.stories.mdx b/packages/styleguide/stories/Atoms/FormInputs/TextArea.stories.mdx
index 8f7cbc176a..8fa4247b85 100644
--- a/packages/styleguide/stories/Atoms/FormInputs/TextArea.stories.mdx
+++ b/packages/styleguide/stories/Atoms/FormInputs/TextArea.stories.mdx
@@ -30,7 +30,7 @@ import { Canvas, Meta, Story } from '@storybook/addon-docs/blocks';
-### Input States
+### Input states
diff --git a/packages/styleguide/stories/Atoms/Icons/Mini.stories.mdx b/packages/styleguide/stories/Atoms/Icons/Mini.stories.mdx
index 67bfc12eed..8ba4d35c57 100644
--- a/packages/styleguide/stories/Atoms/Icons/Mini.stories.mdx
+++ b/packages/styleguide/stories/Atoms/Icons/Mini.stories.mdx
@@ -35,7 +35,7 @@ Our icons by using standardized with a viewBox size of `"0 0 16 16"`. Icons shou
All of our Icons are not minified by default, and optimized by [SVGO](https://github.com/svg/svgo) before build time. We like to preserve the source URL as well as any relevent comments or metadata within these SVGs.
- {(args) => }
+ {(args) => }
diff --git a/packages/styleguide/stories/Atoms/Icons/Regular.stories.mdx b/packages/styleguide/stories/Atoms/Icons/Regular.stories.mdx
index ad06ad5a60..6d7689da6d 100644
--- a/packages/styleguide/stories/Atoms/Icons/Regular.stories.mdx
+++ b/packages/styleguide/stories/Atoms/Icons/Regular.stories.mdx
@@ -44,7 +44,7 @@ import {
}}
/>
-## General Infomation
+## General infomation
For regular icons, we use a subset of [Streamline's "Ultimate Regular" icons](https://www.streamlinehq.com/icons/streamline-regular).
@@ -52,10 +52,23 @@ Our icons are standardized with a viewBox size of `"0 0 24 24"`. Icons should be
All of our Icons are not minified by default, and optimized by [SVGO](https://github.com/svg/svgo) before build time. We like to preserve the source URL as well as any relevent comments or metadata within these SVGs.
+## Adding an icon
+
+If you cannot find the Icon you would like in the ones that we have specified here, please follow these steps to add one.
+
+1. With design's approval pick an Icon ideally from `Streamline Regular`, if you need a filled icon you may pick from `Streamline Bold` but we would prefer the former.
+ If you need something at exists in neither please consult design to create a custom one.
+2. Select the Outline version of the icon as opposed to stroke. You will not be able to get this from the App, and you must find the icon's outline version in our assets.
+ you can check to see if an Icon is stroke by if it has any `stoke-width: 1.5px` rules in it's markup, outline will not have this.
+3. If it doesn’t already have it add the streamline slug (IE: `delete-1`) as the SVG title if it does not already exist and ensure the viewBox is set to `viewBox="0 0 24 24"`. Preserve the source URL, add any relevent comments, and disregard the asset size.
+4. Add the svg asset to [packages/gamut-icons/src/svg](https://github.com/Codecademy/gamut/tree/main/packages/gamut-icons) with the following naming convention `-icon.svg`.
+5. Run `yarn build-all && yarn start` to see it be added to Storybook. It will by default be added to the `Interface` section alphabetically, however you may change this in the config.
+6. Make a PR describing where you got the Icon, what its use is and a description of its naming choice.
+
## Sandbox
-
+
{({ iconName, ...args }) => {
const IconComponent = ICONS[iconName];
return ;
@@ -87,7 +100,7 @@ General user interface icons with affordances
))}
-### Learning Environment
+### Learning environment
Icons that have specific meanings relative to our course content.
diff --git a/packages/styleguide/stories/Atoms/Illustrations.stories.mdx b/packages/styleguide/stories/Atoms/Illustrations.stories.mdx
index 3033f66e6d..58844ae224 100644
--- a/packages/styleguide/stories/Atoms/Illustrations.stories.mdx
+++ b/packages/styleguide/stories/Atoms/Illustrations.stories.mdx
@@ -36,11 +36,11 @@ import {
component={illustrations.NumberBlocks}
/>
-## General Infomation
+## General infomation
These are intended to be able to take in props for variants such as color, so despite being SVG-based, they're stored in our code as regular React components.
-## Adding An Illustration
+## Adding an illustration
If you cannot find the Illustration you would like in the ones that we have specified here, please follow these steps to add one.
@@ -55,7 +55,7 @@ If you cannot find the Illustration you would like in the ones that we have spec
## Sandbox
-
+
{({ illustration, ...args }) => {
const IllustrationComponent = illustrations[illustration];
return ;
diff --git a/packages/styleguide/stories/Atoms/Patterns.stories.mdx b/packages/styleguide/stories/Atoms/Patterns.stories.mdx
index ec2afa047f..6efa038ab6 100644
--- a/packages/styleguide/stories/Atoms/Patterns.stories.mdx
+++ b/packages/styleguide/stories/Atoms/Patterns.stories.mdx
@@ -25,7 +25,7 @@ import { PropsTable } from '~styleguide/blocks';
component={patterns.DotLoose}
/>
-## General Information
+## General information
These are intended to be able to take in a color and any system layout, positioning, and spacing props.
diff --git a/packages/styleguide/stories/Atoms/PopoverContainer/index.stories.mdx b/packages/styleguide/stories/Atoms/PopoverContainer/index.stories.mdx
index 25d4b9d1b7..92c93418fe 100644
--- a/packages/styleguide/stories/Atoms/PopoverContainer/index.stories.mdx
+++ b/packages/styleguide/stories/Atoms/PopoverContainer/index.stories.mdx
@@ -90,7 +90,7 @@ Position the popover at the exact edge of these coordinates.
Flip the popover content along either the x or y axis relative to the alignment. top-left and x would render the popover on the inside left edge rather than outside.
- {InvertAxisTemplate.bind({})}
+ {InvertAxisTemplate.bind({})}
### `offset`
@@ -103,7 +103,7 @@ Addition pixel offset from center in the direction of the alignment (e.g. top-le
-### Individual Axis offsets `x` and `y`
+### Individual axis offsets `x` and `y`
Absolute offset values irrespective of the relative position. (e.g. x={-4} will be 4 pixels to the left in every position unlike offset).
@@ -113,7 +113,7 @@ Absolute offset values irrespective of the relative position. (e.g. x={-4} will
-## Code Playground
+## Code playground
Edit attributes and see what’s possible to do with this component or get the exact output you want.
diff --git a/packages/styleguide/stories/Atoms/ProgressBar/index.stories.mdx b/packages/styleguide/stories/Atoms/ProgressBar/index.stories.mdx
index 2a13fcffd1..d6fadc55f7 100644
--- a/packages/styleguide/stories/Atoms/ProgressBar/index.stories.mdx
+++ b/packages/styleguide/stories/Atoms/ProgressBar/index.stories.mdx
@@ -61,7 +61,7 @@ percentage label.
This is a variant of the ProgressBar that has a transparent background and bordered look with colors based on the current color mode.
-### Dark Mode
+### Dark mode
-### Light Mode
+### Light mode
-## Minimum Percent
+## Minimum percent
Some bars (generally small ones) should display at least a little bit of
progress, even if the technical progress number is zero. You can use the
`minimumPercent` prop for a minimum visual width percentage.
- {(args) => }
+ {(args) => }
## Pattern background
@@ -113,7 +113,7 @@ progress, even if the technical progress number is zero. You can use the
Use components from `@codecademy/gamut-patterns` for a pattern background.
Here we are using the `DiagonalARegular` pattern in navy in the large ProgressBar and the `DiagonalADense` pattern in the smaller ProgressBar.
-### Stripes Regular
+### Stripes regular
-### Stripes Dense
+### Stripes dense
-## Usage Guidelines
+## Usage guidelines
Tags are compact, dynamic elements that support user inputs, selections, and actions. Tags can either be dismissable individually, or read-only when paired with other controls. Use Tags in designs like Filters.
@@ -31,7 +31,7 @@ Tags are compact, dynamic elements that support user inputs, selections, and act
Tags have `default` and `gray` color variants that work in color mode. You can also omit the dimiss button by passing in the `readonly` prop.
-
+
{(args) => (
e.target.blur()} />
@@ -43,12 +43,12 @@ Tags have `default` and `gray` color variants that work in color mode. You can a
-## Truncated Tags
+## Truncated tags
When tag content exceeds the width of its container, it is truncated.
-
+
{() => (
I am long tag yes I am much am a very long tag
@@ -57,13 +57,13 @@ When tag content exceeds the width of its container, it is truncated.
-## Dismissable Tags Example
+## Dismissable tag example
- {() => }
+ {() => }
-## Code Playground
+## Code playground
{(args) => }
diff --git a/packages/styleguide/stories/Atoms/Toggle.stories.mdx b/packages/styleguide/stories/Atoms/Toggle.stories.mdx
index 36a5d771a2..d1ee91f5e6 100644
--- a/packages/styleguide/stories/Atoms/Toggle.stories.mdx
+++ b/packages/styleguide/stories/Atoms/Toggle.stories.mdx
@@ -24,7 +24,7 @@ import {
args={{ onChange: () => null }}
/>
-## Usage Guidelines
+## Usage guidelines
- Toggles are functionally similar to Checkboxes, as they both display whether they are checked or not.
- Also like our Checkboxes, our Toggles are [controlled components](https://reactjs.org/docs/forms.html#controlled-components), so their checked value must be controlled by an external state and onChange.
@@ -47,7 +47,7 @@ import {
-## Color Variants
+## Color variants
Toggles adapt to the appropriate color mode, taking on `hyper` in light mode and `yellow` in dark mode. Toggle the mode in Storybook to see them change!
@@ -89,7 +89,7 @@ Disabling the input will change the opacity and cursor but still denote the curr
-## Component Labels
+## Component labels
Labels can also be React components
@@ -106,7 +106,7 @@ Labels can also be React components
-## HTML Element
+## HTML element
Our Toggles default to being `input` elements, but can also be the `button` element.
@@ -116,7 +116,7 @@ Our Toggles default to being `input` elements, but can also be the `button` elem
If you use voiceover on either of the below, you will hear the difference this makes for accessibility.
-
+
{(args) => }
-## Interactive Examples
+## Interactive examples
-## Playground Example
+## Playground example
diff --git a/packages/styleguide/stories/Foundations/ColorMode/index.stories.mdx b/packages/styleguide/stories/Foundations/ColorMode/index.stories.mdx
index a7dbdeaf4b..40b47a7ece 100644
--- a/packages/styleguide/stories/Foundations/ColorMode/index.stories.mdx
+++ b/packages/styleguide/stories/Foundations/ColorMode/index.stories.mdx
@@ -35,11 +35,11 @@ Gamut components are built using these aliases instead of referring to specific
- Colors usage more meaningful when reading through code as aliases hint to usage.
- Dead simple configuration.
-### Light Mode
+### Light mode
-### Dark Mode
+### Dark mode
@@ -79,7 +79,7 @@ const Page = ({ children }) => (
There are many cases where you may need a specific background color for a section of a page, like a card or a landing page. Instead of having to guess the right mode for the background, we've added a ` ` component to detect if contrast of the background and current mode's text color meet an accessible standard. If not, we will automatically change the mode to an accessible one, allowing you to be sure that all components inside your background will meet contrast requirements and designs without any configuration!
-### Current Background
+### Current background
When you use `Background` the selected background color is set to a theme variable `background-current`. This is useful to reference when you need access to an ancestors background color (e.g. simulating transparency + masking content).
diff --git a/packages/styleguide/stories/Foundations/Layout.stories.mdx b/packages/styleguide/stories/Foundations/Layout.stories.mdx
index a93c9195bc..34b59829b6 100644
--- a/packages/styleguide/stories/Foundations/Layout.stories.mdx
+++ b/packages/styleguide/stories/Foundations/Layout.stories.mdx
@@ -104,7 +104,7 @@ The designer decides how many columns at each breakpoint a section should span.
This section would be 6 columns at the smallest screen size and 4 columns at anything larger than the 4th breakpoint.
-### Best Practices
+### Best practices
- You should begin most design work with a target viewport of 1440px width, using the `XL` column grid.
- Make sure you adjust each design to the viewports and take into account their respective screenheights (the ‘fold’).
@@ -172,7 +172,7 @@ For spacing between components and sections use these as a guide. Each of these
]}
/>
-### Best Practices
+### Best practices
- The smallest unit of space for block elements is 8px.
- Type can be placed with greater precision within elements or in relation to other lines of type (eg. Headlines/text or information in cards) using the 4px baseline grid.
diff --git a/packages/styleguide/stories/Foundations/System/Compose.stories.mdx b/packages/styleguide/stories/Foundations/System/Compose.stories.mdx
index 5d7460cc5d..725770aa96 100644
--- a/packages/styleguide/stories/Foundations/System/Compose.stories.mdx
+++ b/packages/styleguide/stories/Foundations/System/Compose.stories.mdx
@@ -100,7 +100,7 @@ This is important, as some props and shorthands depend on order to ensure they a
}
```
-### Type Simplification
+### Type simplification
Composing style functions handles the type inference for you. This makes your styled components easier to read and write.
diff --git a/packages/styleguide/stories/Foundations/System/Responsive Properties.stories.mdx b/packages/styleguide/stories/Foundations/System/Responsive Properties.stories.mdx
index 6f4b6b44e7..fd435f8573 100644
--- a/packages/styleguide/stories/Foundations/System/Responsive Properties.stories.mdx
+++ b/packages/styleguide/stories/Foundations/System/Responsive Properties.stories.mdx
@@ -48,7 +48,7 @@ Output styles:
}
```
-## Responsive Syntax
+## Responsive syntax
We've matched this syntax to each of our named breakpoints:
@@ -124,7 +124,7 @@ Here are some examples of what the expected output will be for certain configura
}
```
-### What Syntax should I use?
+### What syntax should I use?
Since both syntaxes perform the same task it can be unclear which syntax is preferrable to another, heres some best practices for picking the syntax that will be most readable.
diff --git a/packages/styleguide/stories/Foundations/System/Variants.stories.mdx b/packages/styleguide/stories/Foundations/System/Variants.stories.mdx
index bce0ac353e..eee32a5bdf 100644
--- a/packages/styleguide/stories/Foundations/System/Variants.stories.mdx
+++ b/packages/styleguide/stories/Foundations/System/Variants.stories.mdx
@@ -86,7 +86,7 @@ const FlexBox = styled.div(
;
```
-## Property Passthrough
+## Property passthrough
In addition to system props, both of these functions permit configurations with any valid CSS property that has not been overridden. These properties are typed to their [CSSType](https://github.com/frenic/csstype#csstype) defaults and will not accept values with the responsive syntax.
@@ -159,7 +159,7 @@ const option2 = css({
});
```
-## Selector Syntax
+## Selector syntax
All `css` and `variant` functions are typed to accept a single level of selectors.
diff --git a/packages/styleguide/stories/Foundations/Theme/index.stories.mdx b/packages/styleguide/stories/Foundations/Theme/index.stories.mdx
index b9a360fb3d..9efc6c0c91 100644
--- a/packages/styleguide/stories/Foundations/Theme/index.stories.mdx
+++ b/packages/styleguide/stories/Foundations/Theme/index.stories.mdx
@@ -57,7 +57,7 @@ const myStyles = css`
All current visual identity colors are available on the `colors` key on the Theme object, this includes named standard colors and their respective swatches.
-### Standard Colors
+### Standard colors
Standard color atoms we select from in creating designs. All colors on Codecademy properties should adhere to these. Remember your accessibility contrast requirements too!
@@ -65,7 +65,7 @@ Standard color atoms we select from in creating designs. All colors on Codecadem
-### Solid Color Swatches
+### Solid color swatches
Swatch colors are accessible with a dashcase key `theme.colors['${color}-${weight}']`. Here's a list of all the solid swatches available.
@@ -73,7 +73,7 @@ Swatch colors are accessible with a dashcase key `theme.colors['${color}-${weigh
-### Navy and White Color Swatches
+### Navy and white color swatches
With the exception of the `weight-100`, `navy-800`, and `navy-900` color weights, our navy and white color weights are semi-transparent. Special consideration should be taken when using these colors, especially when overlapping. The white weights, with the non-transparent exceptions, are only visible in dark mode, and the navy weights, with the non-transparent exceptions, are only visible in light mode. You can swap modes using the `Color Mode` toggle at the top of this screen.
@@ -83,7 +83,7 @@ These tokens are also accessible with a dashcase key `theme.colors['${color}-${w
-## Color Modes
+## Color modes
We have 2 core color modes that we support: `light` and `dark`.
@@ -96,7 +96,7 @@ Each color mode consists of a set of aliased color tokens. Each alias has semant
For more on Color Modes please checkout the [full color mode documentation](/?path=/docs/foundations-colormode--page)
-### Light Mode
+### Light mode
@@ -106,7 +106,7 @@ For more on Color Modes please checkout the [full color mode documentation](/?pa
**Example**
-### Dark Mode
+### Dark mode
@@ -121,7 +121,7 @@ export const sampleText = 'Example Text';
export const lorem = `Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
`;
-### Font Family
+### Font family
**Key**: `theme.fontFamily`
@@ -129,7 +129,7 @@ export const lorem = `Lorem ipsum dolor sit amet, consectetur adipiscing elit, s
-### Font Size
+### Font size
**Key**: `theme.fontSize`
@@ -137,7 +137,7 @@ export const lorem = `Lorem ipsum dolor sit amet, consectetur adipiscing elit, s
-### Font Weight
+### Font weight
**Key**: `theme.fontWeight`
@@ -145,7 +145,7 @@ export const lorem = `Lorem ipsum dolor sit amet, consectetur adipiscing elit, s
-### Line Height
+### Line height
**Key**: `theme.lineHeight`
diff --git a/packages/styleguide/stories/Foundations/Typography.stories.mdx b/packages/styleguide/stories/Foundations/Typography.stories.mdx
index c4baa35b6c..885dffe8b3 100644
--- a/packages/styleguide/stories/Foundations/Typography.stories.mdx
+++ b/packages/styleguide/stories/Foundations/Typography.stories.mdx
@@ -62,14 +62,14 @@ Suisse looks very large for its size, which means that typically you will want t
-## Line Length
+## Line length
- Controlling line-length is necessary to ensure text is readable and are layouts well-ordered.
- For most multi-line text areas, keep lines to an average of 66 characters (including spaces).
- For multi-column layouts, do not exceed 50 characters per line (including spaces).
- The best way to control line-length is by starting with the appropriately sized text style for your design, then adjust the width / column-count of the type area until your lines fall within acceptable character counts.
-### Line length and Alignment
+### Line length and alignment
Line length (the number of characters per line of text) is an important contributor to readability. You should aim for lines that run 45–85 characters in length, 66 characters being the ideal of web text. In order to accomplish this, you can usually either make the text size larger (to maintain the same width in your layout) or change the width of the text box in your layout (to maintain the original type size).
diff --git a/packages/styleguide/stories/Foundations/Utilities.stories.mdx b/packages/styleguide/stories/Foundations/Utilities.stories.mdx
index 22bd505dca..caf556b141 100644
--- a/packages/styleguide/stories/Foundations/Utilities.stories.mdx
+++ b/packages/styleguide/stories/Foundations/Utilities.stories.mdx
@@ -12,7 +12,7 @@ import { Canvas, Meta } from '@storybook/addon-docs/blocks';
}}
/>
-## Converting Units
+## Converting units
### PX to REM
@@ -41,11 +41,11 @@ pxRem('30px'); // => 1.875rem;
}
```
-## Style Mixins
+## Style mixins
We also support various style partials to help you consistently achieve affects, like box shadows and screen reader content.
-### Box Shadow
+### Box shadow
We have 5 depths of box shadows that we use.
@@ -119,7 +119,7 @@ const Smooth = `
}
```
-### No Selection
+### No selection
In cases where we want to prevent the user from selecting an image or text.
@@ -143,7 +143,7 @@ const Unselectable = styled.div`
}
```
-### Screen Readers
+### Screen readers
Ensuring that your content is accessible can require you to make screen reader only text elements.
We provide a few helpful mixins for use cases where you want the screen reader to be able to focus or
diff --git a/packages/styleguide/stories/Installation.stories.mdx b/packages/styleguide/stories/Installation.stories.mdx
index a4b5b8bb5e..60fde0c3a6 100644
--- a/packages/styleguide/stories/Installation.stories.mdx
+++ b/packages/styleguide/stories/Installation.stories.mdx
@@ -12,7 +12,7 @@ import { Meta } from '@storybook/addon-docs/blocks';
-## Installation + Setup
+## Installation and setup
1. Add gamut-kit and peer dependencies dependencies
diff --git a/packages/styleguide/stories/Layouts/Box/FlexBox.stories.mdx b/packages/styleguide/stories/Layouts/Box/FlexBox.stories.mdx
index 15b1eeef78..211ec2400e 100644
--- a/packages/styleguide/stories/Layouts/Box/FlexBox.stories.mdx
+++ b/packages/styleguide/stories/Layouts/Box/FlexBox.stories.mdx
@@ -12,7 +12,7 @@ import LinkTo from '@storybook/addon-links/react';
For flex layouts we've added a specific flex FlexBox
component that extends Box with extra props for common flex configurations.
-## Usage Guidelines
+## Usage guidelines
- Use this component if you need specific flex behaviors that can only be used by `flex` and `inline-flex` elements.
- Do not use this component if you want access to flex child props like `flex` or `alignSelf` as most components will have access to these props directly!
@@ -38,7 +38,7 @@ FlexBox comes with a few helpful boolean props to make configuration easier (in
```
-## Code Playground
+## Code playground
Edit attributes and see what’s possible to do with this component or get the exact output you want.
diff --git a/packages/styleguide/stories/Layouts/Box/GridBox.stories.mdx b/packages/styleguide/stories/Layouts/Box/GridBox.stories.mdx
index 6532f44016..80c40056e0 100644
--- a/packages/styleguide/stories/Layouts/Box/GridBox.stories.mdx
+++ b/packages/styleguide/stories/Layouts/Box/GridBox.stories.mdx
@@ -41,7 +41,7 @@ component that extends Box with added flex prop
## Example
-
+
{() => {
const elProps = {
border: 1,
diff --git a/packages/styleguide/stories/Layouts/Box/index.stories.mdx b/packages/styleguide/stories/Layouts/Box/index.stories.mdx
index 67b1653dd2..813dad85db 100644
--- a/packages/styleguide/stories/Layouts/Box/index.stories.mdx
+++ b/packages/styleguide/stories/Layouts/Box/index.stories.mdx
@@ -36,11 +36,11 @@ specific components to handle those in addition to everything that Box does!
-## Visual Examples
+## Visual examples
While the component really has no default styles or props, it can be hard to imagine what you might be able to achieve with it. So we've come up with some examples on how you might use ` ` to solve your own problems.
-### Bordered Containers
+### Bordered containers
One of the main uses of box is to create bordered containers with their own borders and internal padding. Many times when we want to achieve this kind of bordered container effect it can be tempting to just reinvent the wheel, but as requirements mount and differ between contexts we end up with a lot of variety in implementation. The flexibility of ` ` can help limit the amount of redundancy and account for a wild range of possibilities.
@@ -57,7 +57,7 @@ One of the main uses of box is to create bordered containers with their own bord
-## Container Examples
+## Container examples
So far we've covered examples of using ` ` as a visual element on its own, but there are many times where we just need a container to provide a specific context for other design elements.
diff --git a/packages/styleguide/stories/Layouts/ContentContainer.stories.mdx b/packages/styleguide/stories/Layouts/ContentContainer.stories.mdx
index 41e7293d36..56d7ae2303 100644
--- a/packages/styleguide/stories/Layouts/ContentContainer.stories.mdx
+++ b/packages/styleguide/stories/Layouts/ContentContainer.stories.mdx
@@ -25,13 +25,13 @@ within a maximum width, as well as centering that content. By default, it provid
Note: AppBar (used in Global Header) and Footer also use ContentContainer.
Check with the design team if different padding/margin is required on a page layout as additional spacing may cause misalignment with the Header and Footer.
-## Default: Medium
+## Default: medium
{(args) => }
-## Variant: Wide
+## Variant: wide
Use `ContentContainer` to keep page _content_ at a consistent maximum content width across various screen sizes and zooms.
See [the Student Center](https://codecademy.com/student-center) for an example.
@@ -42,10 +42,10 @@ See [the Student Center](https://codecademy.com/student-center) for an example.
-## Code Playground
+## Code playground
-
+
{(args) => }
diff --git a/packages/styleguide/stories/Layouts/LayoutGrid.stories.mdx b/packages/styleguide/stories/Layouts/LayoutGrid.stories.mdx
index cfbd06fd65..80708d565c 100644
--- a/packages/styleguide/stories/Layouts/LayoutGrid.stories.mdx
+++ b/packages/styleguide/stories/Layouts/LayoutGrid.stories.mdx
@@ -57,7 +57,7 @@ export const columns = [
-## Grid Gaps
+## Grid gaps
Grid gaps are the space between cells both horizontally and vertically.
If you would like to adjust the space between columns, set the `columnGap`.
@@ -65,7 +65,7 @@ If you would like to adjust the space between rows, set the `rowGap`.
Both these properties can take a responsive size ,allowing you to define gaps at each breakpoint.
-
+
{(args) => (
{[
@@ -82,10 +82,10 @@ Both these properties can take a
+
{(args) => (
{new Array(12).fill({ size: 3 }).map((props, i) => (
@@ -104,7 +104,7 @@ Columns may be offset from the left by numbers within the [0-12] scale.
As with column and row gaps, those numbers may be static or responsive.
-
+
{(args) => (
{[
@@ -130,7 +130,7 @@ As with column and row gaps, those numbers may be static or responsive.
Columns may be span multiple rows. Make sure you have a consistent row height when using rowspans.
-
+
{(args) => {
const children = new Array(12).fill({ size: 3 }).map((props, i) => {
const span = {
diff --git a/packages/styleguide/stories/Meta/Best Practices.stories.mdx b/packages/styleguide/stories/Meta/Best Practices.stories.mdx
index a6ad5b7cd7..841d3db18f 100644
--- a/packages/styleguide/stories/Meta/Best Practices.stories.mdx
+++ b/packages/styleguide/stories/Meta/Best Practices.stories.mdx
@@ -5,7 +5,7 @@ import { Meta } from '@storybook/addon-docs/blocks';
@@ -105,7 +105,7 @@ export const CoolNumberComponent: React.FC = ({
}) => ;
```
-# System Props
+# System props
System props are a core part of our new approach to dynamic and customized styling. Where writing custom styles is painful, system props are here to make it painless.
@@ -175,7 +175,7 @@ import { Box } from '@codecademy/gamut';
-## Real world use cases
+## Real-world use cases
**Mobile / Desktop specific content**
@@ -220,7 +220,7 @@ const Content = ({ children }) => (
);
```
-# ❌ Nested Selectors
+# ❌ Nested selectors
Nested selectors can cause a huge amount of side effects unwittingly and make it very hard to maintain consistent behavior while making updates. We politely ask (and will shortly lint) that you refrain from using:
diff --git a/packages/styleguide/stories/Meta/Contributing.stories.mdx b/packages/styleguide/stories/Meta/Contributing.stories.mdx
index 0136298231..79e047587b 100644
--- a/packages/styleguide/stories/Meta/Contributing.stories.mdx
+++ b/packages/styleguide/stories/Meta/Contributing.stories.mdx
@@ -10,7 +10,7 @@ We love working with Codecademy employees across all our teams.`,
}}
/>
-## Pre-Work
+## Prework
We track planned work for Gamut components in the [Web Platform Board](https://codecademy.atlassian.net/jira/software/projects/WEB/boards/1386) on JIRA.
@@ -18,9 +18,9 @@ We track planned work for Gamut components in the [Web Platform Board](https://c
- If the work you'd like to do isn't captured in a JIRA ticket, talk to us and we can work with you to create that ticket.
- If you would like to make a request for work to be done, please discuss with us and create a ticket on the [Web Request board](https://codecademy.atlassian.net/jira/software/projects/WEBREQ/boards/181).
-## Writing Components
+## Writing components
-### Component Structure
+### Component structure
Create your component as an `index.tsx` file in a PascalCase-named folder within its package directory, such as `packages/gamut/src/ProgressBar/index.tsx`.
Consider saving this recommended format as an editor snippet:
@@ -38,7 +38,7 @@ export const MyComponent: React.FC = ({ /* ... */ }) => {
};
```
-#### Props Documentation
+#### Props documentation
With the exception of widespread, self-documenting props such as `className`, please include a sentence cased description of the prop's intent.
React props on the component will be picked up by Storybook and added to the component's documentation story.
@@ -55,7 +55,7 @@ limit: number;
- Consider starting comments for booleans with _"Whether "_.
- Props such as `className` that are common to many components generally don't need to be documented.
-#### Class Names
+#### Class names
Most components are fairly simple, and consist of one container element with some children.
In that case it's reasonable to add a `className?: string` prop so that consumers can apply positioning styles onto the element.
@@ -73,7 +73,7 @@ Most components that have configurable themes use one of two APIs:
We generally prefer components start off with the `style` prop when first created, to allow consumers to more easily flesh out how we'd want to use them.
As we learn more and restrict component usage over time, we might switch to `theme`.
-### Unit Tests
+### Unit tests
Your component should have unit tests in a `__tests__/MyComponent-test.tsx` file within its directory.
Use Enzyme's `mount` to test it.
@@ -85,14 +85,14 @@ We generally try to unit test all component logic, with the exception of class n
All components should have Storybook stories showing their use.
See Stories for documentation.
-## Pull Requests
+## Pull requests
Please fill out the pull request template, including links to the corresponding Abstract design and JIRA ticket.
> 😉 Protip: You can use a [Draft PR](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests#draft-pull-requests) to still run CI jobs.
> That includes deploying a Netlify preview and publishing alpha package versions to npm.
-### Publishing Updates
+### Publishing updates
If you know your PR has breaking changes in at least one downstream repository:
@@ -104,7 +104,7 @@ If you know your PR has breaking changes in at least one downstream repository:
If your PR contains breaking changes that might affect other users, please mention them in the `#frontend` Slack channel.
-## Creating a New Package
+## Creating a new package
1. Copy and paste a similar existing package under `packages/`
2. Modify its `package.json`'s `dependencies`, `description`, and `name` to match your new package
diff --git a/packages/styleguide/stories/Meta/FAQs.stories.mdx b/packages/styleguide/stories/Meta/FAQs.stories.mdx
index f393a0d278..cc4e8481c9 100644
--- a/packages/styleguide/stories/Meta/FAQs.stories.mdx
+++ b/packages/styleguide/stories/Meta/FAQs.stories.mdx
@@ -8,12 +8,12 @@ import { Meta } from '@storybook/addon-docs/blocks';
}}
/>
-## How Can I Contribute?
+## How can I contribute?
Thanks for your interest! 🙌
We are prepared to accept contributions from Codecademy employees only at this time.
-## To Gamut or Not To Gamut?
+## To Gamut or not to Gamut?
> When should we create a general component in Gamut instead of a specific one in another application?
@@ -32,7 +32,7 @@ Some examples of things we generally wouldn't include are:
Consider referencing other design systems such as [Fluent](https://www.microsoft.com/design/fluent) and [Material Design](https://material.io/design) to see what they choose to turn into generic components.
-### Implementation Strategy?
+### Implementation strategy?
> Should we implement components in separate repositories or in Gamut?
@@ -46,7 +46,7 @@ As general rules of thumb:
2. If a component is being used for a third time or more, please discuss moving it to Gamut
-## What's Going On With Accessibility?
+## What's going on with accessibility?
Codecademy is committed to becoming [WCAG 2.1 accessible](https://www.w3.org/WAI/standards-guidelines/wcag), and technical accessibility is a must-have in our design system.
Components added here are expected to be fully AA compliant.
diff --git a/packages/styleguide/stories/Meta/Stories.stories.mdx b/packages/styleguide/stories/Meta/Stories.stories.mdx
index 6db3eef2f1..717c01987f 100644
--- a/packages/styleguide/stories/Meta/Stories.stories.mdx
+++ b/packages/styleguide/stories/Meta/Stories.stories.mdx
@@ -9,7 +9,7 @@ import { Meta } from '@storybook/addon-docs/blocks';
}}
/>
-## Quick Start
+## Quick start
We've provided a few helpful vscode snippets to help you get through boilerplate. To use these start to type these strings in your editor and pick the template and fill out the tab targets.
@@ -17,7 +17,7 @@ We've provided a few helpful vscode snippets to help you get through boilerplate
- `toc-story`: A index page template with a table of contents.
- `canvas-block`: A simple template for a more granular story.
-## File Structure + Naming
+## File structure and naming
When you make a new story theres a few things to keep in mind:
@@ -38,7 +38,7 @@ import { Meta } from '@storybook/addon-docs/blocks';
Your new story will be generated with the correct hierarchy and added to storybook!
-## Story Structure
+## Story structure
In our fledgling collective opinion, a good component story page consists of:
@@ -46,7 +46,7 @@ In our fledgling collective opinion, a good component story page consists of:
2. **Flagship Story + Props** A single default story showing the default state of the component with a connected props table right below it.
3. **Variation Storiees** Granular subsections that show the discrete varaitions of the component and describe their use cases
-### General Information
+### General information
1. `subtitle`: What the component does, and what the component would typically be used for.
2. `source`: The source package of the component (e.g. `gamut` | `gamut-styles`)
@@ -69,7 +69,7 @@ In our fledgling collective opinion, a good component story page consists of:
/>
```
-### Flagship Story
+### Flagship story
The first story for a component should be intended to give the reader a broad overview of its high-level functionality.
Try to include the major behaviors for the component that most readers would need to understand its uses.
@@ -89,7 +89,7 @@ Give this story the same name as its component in pascal case.
/>
```
-### Granular Stories
+### Granular stories
Each subsequent story should elaborate on an important behavioral feature of the component.
Try to show a single use of the behavior configurable with args.
diff --git a/packages/styleguide/stories/Molecules/Alert/index.stories.mdx b/packages/styleguide/stories/Molecules/Alert/index.stories.mdx
index f93a888733..b7a3f95b43 100644
--- a/packages/styleguide/stories/Molecules/Alert/index.stories.mdx
+++ b/packages/styleguide/stories/Molecules/Alert/index.stories.mdx
@@ -38,7 +38,7 @@ import { ALERTS } from './constants';
-## Usage Guidelines
+## Usage guidelines
- There are 5 alert types. Choose the one that applies most to your case.
- Display alerts at the top of the page, below the navigation bar.
@@ -49,7 +49,7 @@ import { ALERTS } from './constants';
-## Writing Tips
+## Writing tips
Alert copy should make it clear **what the issue or information is** and **how to proceed**. Refer to the checklist below for guidance. For more tips and best practices, check out the full guide about writing for alerts .
@@ -76,7 +76,7 @@ Alert copy should make it clear **what the issue or information is** and **how t
Writing an error message? Above all else, error messages should explain and resolve. Inform learners of what went wrong and let them know how to proceed. For more tips and best practices, check out the full guide about writing error messages .
-## Alert Types
+## Alert types
@@ -112,49 +112,49 @@ Writing an error message? Above all else, error messages should explain and reso
-## Inline Variant
+## Inline variant
For inline use you can use these non-stroked versions for the General, Success and Error type. Use the ColorMode toggle to checkout both ColorModes for our `subtle` variant!
### General
-
+
{(args) => }
### Success
-
+
{(args) => }
### Error
-
+
{(args) => }
### Notice
-
+
{(args) => }
### Feature
-
+
{(args) => }
### Subtle
-
+
{(args) => }
-## Code Playground
+## Code playground
Edit attributes and see what’s possible to do with this component or get the exact output you want.
diff --git a/packages/styleguide/stories/Molecules/Coachmark/index.stories.mdx b/packages/styleguide/stories/Molecules/Coachmark/index.stories.mdx
index fabdd836fd..ff9e6dbb0c 100644
--- a/packages/styleguide/stories/Molecules/Coachmark/index.stories.mdx
+++ b/packages/styleguide/stories/Molecules/Coachmark/index.stories.mdx
@@ -31,13 +31,13 @@ import { CoachmarkExample } from './Coachmark.examples';
-## Coachmark Customizations
+## Coachmark customizations
Using the popoverProps, you can customize the look of the coachmark.
For example, you can add an outline, beak, and pattern, as shown below.
-
+
{(args) => {
return (
-### Spacing Options
+### Spacing options
`spacing` is an optional prop you can pass to ``. By default it's set to `"normal"`, though you can set it to `"condensed"` or `"compact"` as well. Spacing will determine the height of the heading, the size of the chevron icon, as well as the padding of both the heading and the body.
@@ -154,7 +154,7 @@ Disclosure has 3 variants for background color (`'default'`, `'subtle', 'transpa
-## Code Playground
+## Code playground
-## Flyout in Dark Mode
+## Flyout in dark mode
Flyouts work in light and dark `ColorModes`.
-
+
{(args) => {
const [expanded, setExpanded] = useState(false);
return (
@@ -130,12 +130,12 @@ Flyouts work in light and dark `ColorModes`.
-## Flyout with Overflow
+## Flyout with overflow
Flyouts scroll on vertical overflow and keep the background color.
-
+
{(args) => {
const [expanded, setExpanded] = useState(false);
return (
diff --git a/packages/styleguide/stories/Molecules/Menu/MenuItem.stories.mdx b/packages/styleguide/stories/Molecules/Menu/MenuItem.stories.mdx
index 1274a0b8ef..9bf8f20486 100644
--- a/packages/styleguide/stories/Molecules/Menu/MenuItem.stories.mdx
+++ b/packages/styleguide/stories/Molecules/Menu/MenuItem.stories.mdx
@@ -19,7 +19,7 @@ import { Canvas, Meta, Story } from '@storybook/addon-docs/blocks';
decorators={[(Story) => {Story()} ]}
/>
-## Code Playground
+## Code playground
Edit attributes and see what’s possible to do with this component or get the exact output you want.
diff --git a/packages/styleguide/stories/Molecules/Menu/MenuSeparator.stories.mdx b/packages/styleguide/stories/Molecules/Menu/MenuSeparator.stories.mdx
index a8af3407a6..0bcd7f1143 100644
--- a/packages/styleguide/stories/Molecules/Menu/MenuSeparator.stories.mdx
+++ b/packages/styleguide/stories/Molecules/Menu/MenuSeparator.stories.mdx
@@ -19,7 +19,7 @@ import { Canvas, Meta, Story } from '@storybook/addon-docs/blocks';
args={{}}
/>
-## Code Playground
+## Code playground
Edit attributes and see what’s possible to do with this component or get the exact output you want.
diff --git a/packages/styleguide/stories/Molecules/Menu/index.stories.mdx b/packages/styleguide/stories/Molecules/Menu/index.stories.mdx
index dfb0a2bb3c..f6c612d9ee 100644
--- a/packages/styleguide/stories/Molecules/Menu/index.stories.mdx
+++ b/packages/styleguide/stories/Molecules/Menu/index.stories.mdx
@@ -100,12 +100,12 @@ const MyMenu = () => (
-## Spacing Variants
+## Spacing variants
-### Select Condensed
+### Select condensed
(
-### Action Condensed
+### Action condensed
(
-### Condensed Nav
+### Condensed nav
(
-## Popover Menus
+## Popover menus
You can create popover menus by utilizing our PopoverContainer . Once you have your base positioning, you just need to adjust the `y` axis by `48` for the `normal` spacing or `32` for the `condensed` spacing for each of the `MenuItem`s. You may also need to change the `alignment` of the `PopoverContainer` to ensure correct positioning.
@@ -155,7 +155,7 @@ Click through each item to see how the `Menu`s appear (and disappear when the it
-### Code Playground
+### Code playground
Edit attributes and see what’s possible to do with this component or get the exact output you want.
diff --git a/packages/styleguide/stories/Molecules/Modals/About.stories.mdx b/packages/styleguide/stories/Molecules/Modals/About.stories.mdx
index d48016d599..bbecb2f179 100644
--- a/packages/styleguide/stories/Molecules/Modals/About.stories.mdx
+++ b/packages/styleguide/stories/Molecules/Modals/About.stories.mdx
@@ -11,9 +11,9 @@ import { LinkTo, TableOfContents } from '~styleguide/blocks';
}}
/>
-### Related Components
+### Related components
-#### User Feedback
+#### User feedback
- Dialog : Structured modals with binary user
interaction paths (Confirm / Cancel).
diff --git a/packages/styleguide/stories/Molecules/Modals/Dialog.stories.mdx b/packages/styleguide/stories/Molecules/Modals/Dialog.stories.mdx
index dd2644e24d..f34d3fb250 100644
--- a/packages/styleguide/stories/Molecules/Modals/Dialog.stories.mdx
+++ b/packages/styleguide/stories/Molecules/Modals/Dialog.stories.mdx
@@ -42,7 +42,7 @@ import { ClickOpenDialog } from './Dialog.examples';
- Dialogs appear unprompted and require confirmation before the user can continue.
- Use the modal component sparingly. This is the most dispruptive tool in our arsenal. We should only have a small handful of these in our system at any given time.
-## Usage Guidelines
+## Usage guidelines
- Dialogs have a width of 400px in the `small` size, and 540px in `medium`.
- Small is the default style, and works best with 1-2 lines of text.
@@ -54,7 +54,7 @@ import { ClickOpenDialog } from './Dialog.examples';
- Dialogs should always be displayed over an Overlay . Use the Overlay components in Gamut (and Figma) to capture the appropriate background opacity.
- The overlay in light mode should be white at 95% opacity, the overlay in dark mode should be black at 75% opacity.
-## Writing Tips
+## Writing tips
Simplify the language, prioritize the message, and make sure the implication of what learners are saying “Yes” (or “No”) to is crystal clear. Refer to the checklist below for guidance. For more tips and best practices, check out the full guide about writing for confirmation dialogs .
@@ -125,7 +125,7 @@ Simplify the language, prioritize the message, and make sure the implication of
-## Color Modes
+## Color modes
Dialog components respond to the current Color Mode they are used in. Each component inside of dialog will correctly display for the current color mode without any extra configuration.
Check it out:
@@ -154,7 +154,7 @@ Check it out:
-### With Images
+### With images
The image prop can be used to include a full-width product image or illustration with a 16:9 aspect ratio. This image should help clarify the message of the dialog.
@@ -203,7 +203,7 @@ You can also cause a Dialog to appear/disappear by maintaining a state for `isOp
-## Code Playground
+## Code playground
Edit attributes and see what’s possible to do with this component or get the exact output you want.
diff --git a/packages/styleguide/stories/Molecules/Modals/Modal.stories.mdx b/packages/styleguide/stories/Molecules/Modals/Modal.stories.mdx
index ede686c99e..9f06465e1d 100644
--- a/packages/styleguide/stories/Molecules/Modals/Modal.stories.mdx
+++ b/packages/styleguide/stories/Molecules/Modals/Modal.stories.mdx
@@ -36,7 +36,7 @@ import { ClickOpenModal, ClickOpenMultiViewModal } from './Modal.examples';
}}
/>
-## Customizing Close Behavior
+## Customizing close behavior
### Creating a custom close button
@@ -258,7 +258,7 @@ All of these methods default to true for accessibility reasons, and rely on sett
-## With Image
+## Image + Modal
The image prop can be used to include a full-width product image or illustration with a 16:9 aspect ratio. This image should help clarify the message of the modal.
@@ -312,7 +312,7 @@ You can also cause a Modal to appear/disappear by maintaining a state for `isOpe
-### Code Playground
+### Code playground
Edit attributes and see what’s possible to do with this component or get the exact output you want.
diff --git a/packages/styleguide/stories/Molecules/Modals/Overlay.stories.mdx b/packages/styleguide/stories/Molecules/Modals/Overlay.stories.mdx
index a66d175bb8..3e3cca882d 100644
--- a/packages/styleguide/stories/Molecules/Modals/Overlay.stories.mdx
+++ b/packages/styleguide/stories/Molecules/Modals/Overlay.stories.mdx
@@ -55,7 +55,7 @@ a background behind content, see `Modal` for general modals and `Dialog` for con
-## Code Playground
+## Code playground
Edit attributes and see what’s possible to do with this component or get the exact output you want.
diff --git a/packages/styleguide/stories/Molecules/Pagination/index.stories.mdx b/packages/styleguide/stories/Molecules/Pagination/index.stories.mdx
index 1c6fb061ab..e2e4e348a6 100644
--- a/packages/styleguide/stories/Molecules/Pagination/index.stories.mdx
+++ b/packages/styleguide/stories/Molecules/Pagination/index.stories.mdx
@@ -93,7 +93,7 @@ We have two variants of pagination - `stroke` and `text` - that roughly correspo
-## Pagination Navigation
+## Pagination navigation
When using pagination as navigation between linked pages, use the `isNavigation` prop. Your `onChange` function should include programmatic navigation.
@@ -118,7 +118,7 @@ When using pagination as navigation between linked pages, use the `isNavigation`
-## Controlled Pagination
+## Controlled pagination
When `pageNumber` is specified, the component switches to being a controlled component.
diff --git a/packages/styleguide/stories/Molecules/Popover/index.stories.mdx b/packages/styleguide/stories/Molecules/Popover/index.stories.mdx
index 11607e8469..fcf6607b09 100644
--- a/packages/styleguide/stories/Molecules/Popover/index.stories.mdx
+++ b/packages/styleguide/stories/Molecules/Popover/index.stories.mdx
@@ -55,7 +55,7 @@ Using the beak prop, you can add a beak to the popover.
Tooltips with a _centered_ beak -`center`- are smaller sized and meant for a single small number of words, like keyboard shortcuts. Similar to the center aligned [tooltips](http://localhost:6006/?path=/docs/atoms-tooltip--smaller-alignment#smaller-alignments)
-
+
{(args) => {
return ;
}}
diff --git a/packages/styleguide/stories/Molecules/Tabs/index.stories.mdx b/packages/styleguide/stories/Molecules/Tabs/index.stories.mdx
index 3a467f2e6d..d0fe2faaf6 100644
--- a/packages/styleguide/stories/Molecules/Tabs/index.stories.mdx
+++ b/packages/styleguide/stories/Molecules/Tabs/index.stories.mdx
@@ -98,32 +98,30 @@ instead notify of a request to change using `onChange`.
-## Tabs With Badges
+## Tab + Badge
-
- {(args) => }
-
+ {(args) => }
-## Block Variant
+## Block variant
If you pass in the variant 'block', you will get a slim, dark mode version of tabs.
-
+
{(args) => }
-## Tab Navigation
+## Tab navigation
You can also use tabs as standard link-based navigation. To do this, you can use the `TabNav` and `TabNavLink` components.
It is recommended to add a unique `aria-label` to the `TabNav` component, to differentiate it from other navigation elements on the page.
- {(args) => }
+ {(args) => }
## Tabs with interactive content
@@ -131,7 +129,7 @@ It is recommended to add a unique `aria-label` to the `TabNav` component, to dif
If you have tabs with interactive content within them (such as a button or link), you need to add `tabindex={-1}` to the TabPanel so that the interactive content, rather than the TabPanel itself, become focused.
-
+
{(args) => }
diff --git a/packages/styleguide/stories/Molecules/Tip/About.stories.mdx b/packages/styleguide/stories/Molecules/Tip/About.stories.mdx
index abdd343d52..e873c66a84 100644
--- a/packages/styleguide/stories/Molecules/Tip/About.stories.mdx
+++ b/packages/styleguide/stories/Molecules/Tip/About.stories.mdx
@@ -13,15 +13,15 @@ import { TipTable } from './elements';
}}
/>
-Tips come in the form of Tooltips or Infotips (and eventually link previews). These represent distinct use cases and should not be interchanged. If you are unsure, reference the comparison table below.
+Tips come in the form of ToolTip or InfoTips (and eventually link PreviewTip). These represent distinct use cases and should not be interchanged. If you're unsure, reference the comparison table below.
### tldr;
-- **Tooltip** > tell me about this thing before I click on it
-- **Infotip** > tell me more about something nearby
+- **ToolTip** > tell me about this thing before I click on it
+- **InfoTip** > tell me more about something nearby
- **PreviewTip** > preview content before I navigate to it
- **DeprecatedToolTip** > these are being phased out and should not be used
diff --git a/packages/styleguide/stories/Molecules/Tip/DeprecatedToolTip.stories.mdx b/packages/styleguide/stories/Molecules/Tip/DeprecatedToolTip.stories.mdx
index a82298a395..a0abaef1f8 100644
--- a/packages/styleguide/stories/Molecules/Tip/DeprecatedToolTip.stories.mdx
+++ b/packages/styleguide/stories/Molecules/Tip/DeprecatedToolTip.stories.mdx
@@ -108,7 +108,7 @@ Tooltips with _centered_ alignments -`bottom-center` or `top-center`- are smalle
_Note:_ Because of the size of these ToolTips, they should never overflow their container so are not applicable to Tooltips with the 'floating' `placement`.
-
+
{(args) => {
return (
@@ -140,7 +140,7 @@ _Note:_ Because of the size of these ToolTips, they should never overflow their
Tooltips with _corner_ alignments -`*-left` or `*-right`- are larger sized and meant for the occasional longer explanation, like form field validation explainers.
-
+
{(args) => {
return (
diff --git a/packages/styleguide/stories/Molecules/Tip/InfoTip.stories.mdx b/packages/styleguide/stories/Molecules/Tip/InfoTip.stories.mdx
index 5ca5b10af6..316ede1541 100644
--- a/packages/styleguide/stories/Molecules/Tip/InfoTip.stories.mdx
+++ b/packages/styleguide/stories/Molecules/Tip/InfoTip.stories.mdx
@@ -102,7 +102,7 @@ This `floating` variant should only be used when it as needed.
Links or buttons within InfoTips should be used sparingly and only when the information is critical to the user's understanding of the content. If an infotip _absolutely requires_ a link or button, it needs to provide a programmatic focus by way of the `onClick` prop. The `onClick` prop accepts a function that calls the object `{isTipHidden}` and should focus when the tip is visible.
-
+
{() => (
This text is in a small space and needs info {' '}
diff --git a/packages/styleguide/stories/Molecules/Tip/ToolTip.stories.mdx b/packages/styleguide/stories/Molecules/Tip/ToolTip.stories.mdx
index 0446df3f02..083bb7bd3f 100644
--- a/packages/styleguide/stories/Molecules/Tip/ToolTip.stories.mdx
+++ b/packages/styleguide/stories/Molecules/Tip/ToolTip.stories.mdx
@@ -59,14 +59,14 @@ When a Button is disabled with a tooltip, you must use the `aria-disabled` prop
-## IconButtons and ToolTips
+## IconButton + ToolTip
When using an icon-only button, a tooltip displaying the label is required to provide context for the button's action. This is accessible directly through the `IconButton`'s required `tip` prop. You can adjust positioning and alignment of the tooltip by using the tipProps prop. An additional label that is different from the tip should also be provided.
If your `IconButton` doesn't require `aria-describedby` text, you can set the `hideAriaToolTip` tipProp to `true` to hide the `aria-describedby` text. When using the `hideAriaToolTip` prop, the `aria-label` should always be identical to the `tip` prop.
-
+
{() => (
-## Floating Placement
+## Floating placement
ToolTips sometimes need to be in used in a way that they need to escape the confines of their parents container. The `floating` variant of the `placement` prop allows ToolTips do just this. (Notice how this section doesn't need as much padding because the ToolTips are able to escape their context!)
This `floating` variant should only be used when it as needed.
-
+
{() => (
-## zIndex + Inline Placement
+## zIndex + inline placement
If using an inline placement, you will have access to the `zIndex` prop to adjust the ToolTip's stacking order.
-
+
{() => (
-## Usage Guidelines
+## Usage guidelines
- Can be used when an immediate feedback is needed for learners upon completing a learning task. (E.g. unlocking an achievement during learning)
- Should NOT repeat messages that are recieved in the notification bell.
- Appears at the bottom right of the screen.
- Slides in to the screen and when canceled, slides back and leaves the screen.
-### Key Principles
+### Key principles
- Only one should appear at the screen at a time.
- Toasts shouldn’t distract from learning. Be hesitant to use them in the Learning Environment, especially for messages that can be communicated outside of the LE.
-## Writing Tips
+## Writing tips
When writing copy for a toast, Keep it brief, ensure the message is personal and relevant, and avoid distracting from the learning experience. Refer to the checklist below for guidance. To learn more, check out the full writing guide about toasts .
@@ -105,7 +105,7 @@ Icons can either be urls or react nodes:
- Images will be sized correctly by default and resolved as a background image.
- If you choose to use a custom element you must cofigure the content to be the correct width (64x64) and fit within the containing circle manually.
-
+
}>
Inline has hasn't been this cool since the disney channel original movie
Brink!
@@ -116,7 +116,7 @@ Icons can either be urls or react nodes:
Toasts can have other content internal to each section like links or icons.
-
+
-### Code Playground
+### Code playground
Edit attributes and see what’s possible to do with this component or get the exact output you want.
diff --git a/packages/styleguide/stories/Organisms/ConnectedForm/ConnectedForm.stories.mdx b/packages/styleguide/stories/Organisms/ConnectedForm/ConnectedForm.stories.mdx
index a2b39d109f..abcac9cb04 100644
--- a/packages/styleguide/stories/Organisms/ConnectedForm/ConnectedForm.stories.mdx
+++ b/packages/styleguide/stories/Organisms/ConnectedForm/ConnectedForm.stories.mdx
@@ -199,7 +199,7 @@ export const RadioWatchExample = () => {
Watched fields aren't usually great for performance, so only use these fields when you need to.
-### Code Playground
+### Code playground
Edit attributes and see what’s possible to do with this component or get the exact output you want.
diff --git a/packages/styleguide/stories/Organisms/ConnectedForm/ConnectedFormGroup.stories.mdx b/packages/styleguide/stories/Organisms/ConnectedForm/ConnectedFormGroup.stories.mdx
index 93edc52d19..7542c00873 100644
--- a/packages/styleguide/stories/Organisms/ConnectedForm/ConnectedFormGroup.stories.mdx
+++ b/packages/styleguide/stories/Organisms/ConnectedForm/ConnectedFormGroup.stories.mdx
@@ -63,7 +63,7 @@ import {
```
-### Code Playground
+### Code playground
Edit attributes and see what’s possible to do with this component or get the exact output you want.
diff --git a/packages/styleguide/stories/Organisms/ConnectedForm/ConnectedFormInputs.stories.mdx b/packages/styleguide/stories/Organisms/ConnectedForm/ConnectedFormInputs.stories.mdx
index d4be9bf942..bc61da918b 100644
--- a/packages/styleguide/stories/Organisms/ConnectedForm/ConnectedFormInputs.stories.mdx
+++ b/packages/styleguide/stories/Organisms/ConnectedForm/ConnectedFormInputs.stories.mdx
@@ -84,7 +84,7 @@ Use outside of `ConnectedFormGroup` removes much of the accessibility and type-s
-## Delaying Updates to ConnectedForm
+## Delaying updates to ConnectedForm
On forms with many nested and/or array-like fields, it can be useful for performance reasons to delay updating the form state until the user has finished updating a field (rather than, for example, on every keystroke in a text input).
diff --git a/packages/styleguide/stories/Organisms/GridForm.stories.mdx b/packages/styleguide/stories/Organisms/GridForm.stories.mdx
index e7309906e9..1d1b6f7fa6 100644
--- a/packages/styleguide/stories/Organisms/GridForm.stories.mdx
+++ b/packages/styleguide/stories/Organisms/GridForm.stories.mdx
@@ -169,7 +169,7 @@ GridForm provides the following benefits:
-## Modifying Elements
+## Modifying elements
`GridForms` are laid out with `LayoutGrid`, so you can override its `columnGap` and `rowGap` with the normal string or responsive layouts to style and align the GridForm to your designs. You can also configure the `GridFormButtons` to modify the submit buttons and optional cancel buttons.
@@ -189,7 +189,7 @@ The [GridForm page in Gamut](https://www.figma.com/file/ReGfRNillGABAj5SlITalN/%
- **Inline Submit**: A form incorporating the Inline Submit Button style of GridForm
- **Instructions**: Contains suggestions for modifying the Figma component for your own designs
-### Figma Component Instructions
+### Figma component instructions
- Enable Layout Grid (^G)
- Select a `❖ GridForm` variant as a template
@@ -200,12 +200,12 @@ The [GridForm page in Gamut](https://www.figma.com/file/ReGfRNillGABAj5SlITalN/%
- Customize `🚥 GridFormButtons`
- Submit button style (Fill/CTA), position, cancel button
-## Disabled Inputs
+## Disabled inputs
If an input is not meant to be usable, such as when a portion of a form is disabled pending user action, you can make it visually disabled with a `disabled` field member.
-
+
{() => (
LayoutGrid) to customize the layouts of our GridForms. You can also customize the `FormRequiredText` using the `requiredTextProps`. `FormRequiredText` should be spaced apart from or be stylistically different from the text element above it.
-
+
{() => (
+
{() => (
@@ -395,13 +395,13 @@ value of left, center, right, or stretch.
-## Submit Button Options
+## Submit button options
We can specify the version of our button by passing the type prop. We can choose between
the `FillButton` or `CTAButton` .
-
+
{() => (
<>
`FillButton` or
+
{() => (
-
+
{() => (
-## Placeholder Text
+## Placeholder text
Text inputs are allowed to have traditional `placeholder` text.
This is a somewhat dangerous behavior for accessibility, as browsers
@@ -710,7 +710,7 @@ See [this article](https://www.nngroup.com/articles/form-design-placeholders/) o
more details on why using placeholders is often bad.
-
+
{() => (
-## On Field Update
+## On field update
A field can take an onUpdate callback. This callback will fire when the
field's value changes. This could be useful if you need to use the
field's value in a parent component before onSubmit gets triggered.
-
+
{() => {
const [text, setText] = useState('');
return (
@@ -770,7 +770,7 @@ field's value in a parent component before onSubmit gets triggered.
-## With InfoTip
+## InfoTip + GridForm
A field can include our existing `InfoTip`. The position of the infotip on each field is always set to the bottom-right.
@@ -990,12 +990,12 @@ When using the left-aligned layout, please note that the `title` takes up 3 colu
-## Custom Error
+## Custom error
A field can take a custom error in addition to validation errors. The validation error will always take precedence to the custom error.
-
+
{() => {
return (
-## Hidden Input
+## Hidden input
Hidden inputs can be used to include data that users can't see or modify with the submission. For this implementation you can set the `defaultValue` in the object and it will be submitted with the regular form data.
-
+
{() => (
-## Sweet Container Input
+## Sweet container input
"Sweet container" ([honeypot]()) inputs can be used to detect bots by providing a field that would not generally be clicked by human users, but might be triggered automatically by bots.
We call it a "sweet container" so that bots do not immediately detect it as a honeypot input.
-
+
{() => (
-## Markdown Errors
+## Markdown errors
GridForm renders errors through our Markdown component so we can optionally add markdown to our validation messages.
-
+
{() => (
-
+
{() => (
-
+
{() => (
<>
@@ -1249,12 +1249,12 @@ If you need to checkboxes to fit into a smaller space, you can use our our `tigh
-## Disabled Fields on Submit
+## Disabled fields on submit
`disableFieldsOnSubmit` will disable all form fields once the form has been successfully submitted. If you have any server-side validation that needs to happen, we recommend using the `wasSubmitSuccessful` prop, but submission will also fail if a promise is rejected within your `onSubmit` or if a field does not pass validation.
-
+
{() => (
<>
@@ -1340,12 +1340,12 @@ If you need to checkboxes to fit into a smaller space, you can use our our `tigh
-## Reset Form on Submit
+## Reset form on submit
`resetOnSubmit` will reset the form once the GridForm has been successfully submitted. If you have any server validation that needs to happen, we recommend using the `wasSubmitSuccessful` prop, but submission will also fail if a promise is rejected within your `onSubmit` or if a field does not pass validation.
-
+
{() => (
<>
@@ -1425,12 +1425,12 @@ We can combine these together to create some pretty cool forms which have a load
-## Solo Field Forms
+## Solo field form
Solo field form should always have their solo input be required. They should automagically not have the required/optional text - if you have a custom rendered hidden input, you may have to use the `hasSoloField` prop.
-
+
{() => (
<>
diff --git a/packages/styleguide/stories/Organisms/Lists & Tables/DataList.stories.mdx b/packages/styleguide/stories/Organisms/Lists & Tables/DataList.stories.mdx
index 68dd551553..e6785af40b 100644
--- a/packages/styleguide/stories/Organisms/Lists & Tables/DataList.stories.mdx
+++ b/packages/styleguide/stories/Organisms/Lists & Tables/DataList.stories.mdx
@@ -76,7 +76,7 @@ import { DataListTemplate } from './examples.tsx';
}}
/>
-## Design Principles
+## Design principles
**Recommended for engaging with individual Items**
@@ -130,9 +130,9 @@ const DataTown = () => {
-### Full Example
+### Full example
-
+
@@ -152,12 +152,12 @@ const DataTown = () => {
-### Additional Column Configuration
+### Additional column configuration
- `size` - enum which determines how much space the column should take up within the table
- `fill` - boolean which, when set to true, takes up the remaining space in the table. If more than one column is set to `fill`, the remaining space will be divied up between those items.
-### Code Playground
+### Code playground
{(args) => }
diff --git a/packages/styleguide/stories/Organisms/Lists & Tables/DataTable.stories.mdx b/packages/styleguide/stories/Organisms/Lists & Tables/DataTable.stories.mdx
index 81d0d77eab..bbf24a7653 100644
--- a/packages/styleguide/stories/Organisms/Lists & Tables/DataTable.stories.mdx
+++ b/packages/styleguide/stories/Organisms/Lists & Tables/DataTable.stories.mdx
@@ -73,19 +73,19 @@ import { DataTableTemplate } from './examples.tsx';
}}
/>
-## Design Principles
+## Design principles
-**Design Principles**
+**Design principles**
- Recommended for bulk analysis across Rows
- Tables best support information that needs sorting, filtering, pagination, and querying
- Prioritize data and information that’s meant to be compared up front, then surface secondary information on external surfaces
-**Use Table affordances for best information design**
+**Use table affordances for best information design**
- Design and arrange table metrics to encourage finding, scanning, and comparing information
-**Use Cell-level interactions to activate specific data**
+**Use cell-level interactions to activate specific data**
- Use Coachmarks, Tooltips, Modals, and Flyovers to augment information
- Use Anchors and Links to direct users to another surface
@@ -130,50 +130,50 @@ const DataTown = () => {
-### Sorting and Filtering
+### Sorting and filtering
Each column takes a `sortable` and `filters` prop - this is will determine if the column should be sortable and which filters should appear in the dropdown menu of the column.
-
+
-### Empty
+### Empty state
-
+
{(args) => }
-### Loading
+### Loading rows
Replaces content of current rows with Shimmer .
-
+
{(args) => }
-### Scrollable Indicators
+### Scrollable indicators
-
+
{(args) => }
-### Additional Column Configuration
+### Additional column configuration
- `size` - enum which determines how much space the column should take up within the table
- `fill` - boolean which, when set to true, takes up the remaining space in the table. Each `DataTable` should only have one `fill` column.
-### Code Playground
+### Code playground
{(args) => }
diff --git a/packages/styleguide/stories/Organisms/Lists & Tables/List/index.stories.mdx b/packages/styleguide/stories/Organisms/Lists & Tables/List/index.stories.mdx
index 6fd21386e4..e549c55be4 100644
--- a/packages/styleguide/stories/Organisms/Lists & Tables/List/index.stories.mdx
+++ b/packages/styleguide/stories/Organisms/Lists & Tables/List/index.stories.mdx
@@ -42,7 +42,7 @@ Lists are one of the main design tools for displaying information in a structure
- Lists are distinct from Tables in that they have mixed column content (interactive elements / metrics) whereas tables have only metrics. If you plan on having row controls or options in your table, use a List.
- When presenting repetitive content prefer using a List view over a Card view.
-## Design Principles
+## Design principles
Recommended for engaging with individual Items
@@ -95,7 +95,7 @@ Lists come with 3 spacing variants `normal`, `condensed`, and `compact`.
For mixed content use the normal size to ensure that there is enough space for components
-
+
{DemoTemplate.bind({})}
@@ -103,7 +103,7 @@ For mixed content use the normal size to ensure that there is enough space for c
For a more compact list use the condensed spacing
-
+
{DemoTemplate.bind({})}
@@ -111,7 +111,7 @@ For a more compact list use the condensed spacing
For an even more compact list use the compact spacing
-
+
{DemoTemplate.bind({})}
@@ -196,7 +196,7 @@ It is recommended that you use the aliases for any content that may have variabl
-### Filling Empty Space
+### Filling empty space
You can specify a column to expand or collapse beyond its normal flex basis. These modifiers can be used in conjunction with any size specification:
@@ -221,7 +221,7 @@ You can align the content to the right of each column using the `justify` prop o
## Layouts
-### Horizontal Scrolling
+### Horizontal scrolling
If you have a list with many columns and would like to avoid collapsing any columns information you can use the `scrollable` prop which will lock the row header to the left hand side and expand all columns to the their minimum flex-basis. All rows and columns scroll along the X axis in tandem to ensure that you may compare data or take multiple actions between each row.
@@ -276,7 +276,7 @@ Optionally, you can pass a `breakpoint` prop to the List to alter this behavior.
-### Example Configuration
+### Example configuration
```tsx
@@ -292,11 +292,11 @@ Optionally, you can pass a `breakpoint` prop to the List to alter this behavior.
-### Collapsible Row Content
+### Collapsible row content
You can define collapsible content by passing an `expanded` prop and the `React.Node` to the `renderExpanded` prop of your `ListRow` components.
-#### Expand on Button Click
+#### Expand on button click
```tsx
export const ExpandableRow: React.FC<{
@@ -326,7 +326,7 @@ export const ExpandableRow: React.FC<{
};
```
-#### Expand on RowClick
+#### Expand on row click
```tsx
export const ExpandableRow: React.FC<{
@@ -360,20 +360,20 @@ export const ExpandableRow: React.FC<{
Here's some examples of Lists to use as guides.
-
+
{NormalTemplate.bind({})}
-
+
{CondensedTemplate.bind({})}
{CondensedTemplate.bind({})}
@@ -381,21 +381,21 @@ Here's some examples of Lists to use as guides.
-
+
{ExpandedTemplateButtonClick.bind({})}
{ExpandedTemplateRowClick.bind({})}
-## Code Playground
+## Code playground
{DemoTemplate.bind({})}
diff --git a/packages/styleguide/stories/Organisms/Markdown/index.stories.mdx b/packages/styleguide/stories/Organisms/Markdown/index.stories.mdx
index 241e29b955..3679fa3ab4 100644
--- a/packages/styleguide/stories/Organisms/Markdown/index.stories.mdx
+++ b/packages/styleguide/stories/Organisms/Markdown/index.stories.mdx
@@ -32,12 +32,12 @@ This is markdown
## Full example
-
+
{(args) => }
-## Element Overrides
+## Element overrides
In cases where our default Markdown renderer is not returning exactly what you need, you can override specific tags or custom tags.
diff --git a/packages/styleguide/stories/Typography/Anchor.stories.mdx b/packages/styleguide/stories/Typography/Anchor.stories.mdx
index b0493638df..6ae90246c7 100644
--- a/packages/styleguide/stories/Typography/Anchor.stories.mdx
+++ b/packages/styleguide/stories/Typography/Anchor.stories.mdx
@@ -58,7 +58,7 @@ There are three main varaints for Anchor links that are meant to be used in spec
-## Color Modes
+## Color modes
Anchor elements respond to the current Color Mode they are used in. This means you do not have to configure a prop to ensure that they meet contrast and design guidelines. Each variant will have consistent and inverse behavior in different contexts.
@@ -78,7 +78,7 @@ import { ColorMode } from '@codecademy/gamut-styles';
```
-## Writing Tips
+## Writing tips
Writing words for a link or button? Above all else, make sure that the words alone make it clear where a button or link will take the user. Refer to the checklist below for guidance. For more tips and best practices, check out the full guide about writing for buttons and links .
@@ -103,12 +103,12 @@ Writing words for a link or button? Above all else, make sure that the words alo
spacing="tight"
/>
-## Adding an Icon
+## Adding an icon
You can add an Icon to the left or right of the Anchor text.
-
+
{(args) => }
@@ -117,7 +117,7 @@ Here's how icons can look with all the variants.
{() => }
-## Code Playground
+## Code playground
Edit attributes and see what’s possible to do with this component or get the exact output you want.
diff --git a/packages/styleguide/stories/Typography/Text.stories.mdx b/packages/styleguide/stories/Typography/Text.stories.mdx
index b58e191349..9541c7036e 100644
--- a/packages/styleguide/stories/Typography/Text.stories.mdx
+++ b/packages/styleguide/stories/Typography/Text.stories.mdx
@@ -26,7 +26,7 @@ import { Fragment } from 'react';
-## Usage Guidelines
+## Usage guidelines
This is the preferred component for customizing typography. The API is progressively specific. In order to achieve the effect you are looking for there are 3 levels of precedence.
@@ -49,7 +49,7 @@ import { Text } from '@codecademy/gamut';
-## 1. Element Variants
+## 1. Element variants
When you use a specific element Text will style it with overridable defaults as our best guess behavior. These styles take lowest priority as they are merely meant to act as a useful default, both `variant` and any system prop will override the styles specified here.
@@ -61,7 +61,7 @@ import { Text } from '@codecademy/gamut';
;
```
-
+
{() => (
{Object.keys(typographyElementVariants).map((tag) => (
@@ -80,7 +80,7 @@ import { Text } from '@codecademy/gamut';
)}
-## 2. Style Variants
+## 2. Style variants
These are our base semantic font scales. These apply directly to the typography scales in figma and can be used with any arbitrary tag. These take precedence over any element based variants if configured. If none of these specifically match your need you can also override behavior with any system prop (such as `lineHeight` and `fontSize`).
@@ -149,7 +149,7 @@ Text has some special props with common use cases to make your life easier.
-### Font Smoothing (default: false)
+### Font smoothing (default: false)
@@ -214,7 +214,7 @@ Text has some special props with common use cases to make your life easier.
-## Code Playground
+## Code playground
Edit attributes and see what’s possible to do with this component or get the exact output you want.
diff --git a/packages/styleguide/stories/UX Writing/About.stories.mdx b/packages/styleguide/stories/UX Writing/About.stories.mdx
index afe821cc37..1979f35c4f 100644
--- a/packages/styleguide/stories/UX Writing/About.stories.mdx
+++ b/packages/styleguide/stories/UX Writing/About.stories.mdx
@@ -21,7 +21,7 @@ In the following pages, you’ll find a collection of tips and tools for writing
## Resources
-### External Tools & Resources:
+### External tools and resources:
🖍 **[Hemingway App](https://hemingwayapp.com/):** Tool for checking copy for grade level and readability