Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/washingtonpost/design-tokens
https://github.com/washingtonpost/design-tokens
wpds
Last synced: 5 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/washingtonpost/design-tokens
- Owner: washingtonpost
- Created: 2022-05-10T23:26:49.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-04-03T16:55:46.000Z (over 1 year ago)
- Last Synced: 2024-04-15T09:14:30.126Z (7 months ago)
- Topics: wpds
- Language: JavaScript
- Homepage: design-tokens.preview.now.washingtonpost.com
- Size: 5.75 MB
- Stars: 1
- Watchers: 10
- Forks: 0
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# WPDS v0 Design tokens (Legacy)
The project is a work in progress. The goal is to distribute design tokens for The Washingon Post design system for mulitple platforms (web, iOS, Android). Tokens are compiled using [style dictionary](https://amzn.github.io/style-dictionary/#/). Each package in this repository contains a set of values related to core design needs like color, space, typography, etc.
## Initial setup
Install the project dependencies:
```shell
npm i
```## Project structure
The project is made of these files and folders:
- `config.json` is the script used to generate the output files for each package
## Package structure
Each package is made of these files and folders:
- `token.json` contains the design tokens input files (in JSON format)
- `/dist` contains the generated output files (in different formats)### Building Packages
To build packages, simply install dependencies by running `npm run install` and build them with `npm run build`.
### Committing Changes
We use [standard-version](https://github.com/conventional-changelog/standard-version) to automatically update the changelog and decide new version numbers. As such, we need commit messages to follow a consistent format (drawn from [conventional commits](https://conventionalcommits.org/)).
Example commit messages (simply match this pattern and your commit message will be accepted):
- `git commit -m "feat: add example packet"`
- `git commit -m "fix(color): fix table layout for green colors" -m "fixes RD-999"`
- `git commit -m "feat(border): add new 8px border radius token"`
- `git commit -m "docs: update asset file paths"`
- `git commit -m "feat(dependencies): upgrade classnames to 2.2.5"`
- `git commit -m "chore(dependencies): upgrade babel dependencies to latest version"` (chore because they are devDependencies)
- `git commit -m "feat(build): add linting to commit messages"`Commit message format:
```shell
type(scope?): subjectbody?
footer?
````type` is one of the following:
- **fix**: Solves a bug
- **feat**: Adds a new feature
- **build**: Affects the build system or external dependencies
- **docs**: Adds or alters documentation
- **perf**: Improves performance
- **test**: Adds or modifies tests
- **chore**: Other changes that don't modify `src` or `test` files`scope` is optional but, with few exceptions, should be used for all `feat` and `fix` commits. Common scopes include:
- **[{Package Name}]**: Changes to a Design tokens package
- **dependencies**: Changes to `dependencies` should be `feat`, and `devDependencies` should be `chore`
- **build**: Changes to the build that make significant changes to the published package, should be a `feat` or `fix`Feel free to suggest additional scope options.
`subject` requirements:
- starts with lower case
- uses the imperative, present tense: "change" not "changed" nor "changes"
- includes motivation for the change and contrasts with previous behavior`body` is optional and allows for more details to be added
`footer` contains meta-information about pull requests, e.g. "fixes DS-999", referring to a Jira ticket.
### Publishing Package Updates to npm
See [releases](./RELEASES.md) workbook.
#### Production Releases (Performed Locally)
See [releases](./RELEASES.md) workbook.
### Testing packet changes locally
Test any local packet in another project by utilizing [npm link](https://docs.npmjs.com/cli/link). Below is an example workflow to link `design-tokens` to `site-components`.
- Navigate to your local copy of any design tokens in a terminal window
```shell
cd ~/YourCodeFolder/wp-design-tokens/packages/{package name}
npm link # only needs to be run once
npm run build
```- Navigate to the folder where you wish to use the tokens in your terminal (such as `site-components`) and complete the link
```shell
cd ~/YourCodeFolder/site-components
npm run link "@washingtonpost/{package name}-tokens"
```- You can now use any package from your local instance of Design Tokens in your project.
- **When you are done, be sure to unlink Design Tokens so you are using the published version of the packages**
```shell
npm run unlink "@washingtonpost/{package name}-tokens"
```