You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+52-14Lines changed: 52 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,38 +1,38 @@
1
1
# 🌤️ What is the goal of the design system?
2
2
3
-
The goal of the design system is to achieve visual and experiential consistency throughout the app while streamlining the design and implementation process. The design system should contain all reusable components, one-off variations, and guidelines that are used to build up the existing and future screens of our application. It should direct us to be mindful of when we're consciously diverging from the established system.
3
+
The goal of the design system is to achieve visual and experiential consistency throughout the app while streamlining the design and implementation process. The design system should contain all reusable components, one-off variations, and guidelines that are used to build up the existing and future screens of our application. It should direct us to be mindful of when we're consciously diverging from the established system.
💚 **Scenario: We need a new component in the design system that is already in the Figma DS, and adding the new component is straightforward and will not significantly affect timeline of the effort.**
15
+
💚 **Scenario: We need a new component in the design system that is already in the Figma DS, and adding the new component is straightforward and will not significantly affect timeline of the effort.**
16
16
17
-
We should go ahead and add the new component into Storybook and use the new component in the design.
17
+
We should go ahead and add the new component into Storybook and use the new component in the design.
18
18
19
-
⏲️ **Scenario: We need a new component in the design system that is already in the Figma DS, but adding the new component will affect timeline for the effort.**
19
+
⏲️ **Scenario: We need a new component in the design system that is already in the Figma DS, but adding the new component will affect timeline for the effort.**
20
20
21
-
We should build the component in a way that will allow for simple transfer into the design system. Adding the component into the design system should be a follow-on task immediately after the effort.
21
+
We should build the component in a way that will allow for simple transfer into the design system. Adding the component into the design system should be a follow-on task immediately after the effort.
22
22
23
-
🧠 **Scenario: We have a situation where a new component would improve the usability of our design, but it is not yet defined in the Figma DS or in Storybook.**
23
+
🧠 **Scenario: We have a situation where a new component would improve the usability of our design, but it is not yet defined in the Figma DS or in Storybook.**
24
24
25
25
These often pop up in the #design-review channel and decisions will depend on designer and development bandwidth. We should strive to make considered designs that continue to push the usability of our app forward while building brand consistency. If there is alignment on a design need, we should add the new component or variation to the Figma DS and add the new component into the design system. If we do not have bandwidth to align on a new design and add the variation to the design system, we should do the best we can with existing patterns.
26
26
27
27
## Who makes design system decisions?
28
28
29
-
Designers can make proposals to update the design system at any point. These changes are submitted to #design-review, and other designers can weigh in with thoughts. There should be a general consensus on why and how the design system should be changed to better suit our needs. Wen is responsible for weighing input and proposing a path forward, looping in JH when necessary.
29
+
Designers can make proposals to update the design system at any point. These changes are submitted to #design-review, and other designers can weigh in with thoughts. There should be a general consensus on why and how the design system should be changed to better suit our needs. Wen is responsible for weighing input and proposing a path forward, looping in JH when necessary.
30
30
31
-
On the development side, Dave and Rachel oversee how components are organized and implemented to be put into use most effectively.
31
+
On the development side, Dave and Rachel oversee how components are organized and implemented to be put into use most effectively.
32
32
33
33
## How do we decide whether something is one-off or when the component should be updated universally?
34
34
35
-
Development-wise, I think we should always strive for universal changes if components are being updated. However, some changes are easily made with confidence that we won't cause issues with the app, while others will require more QA.
35
+
Development-wise, I think we should always strive for universal changes if components are being updated. However, some changes are easily made with confidence that we won't cause issues with the app, while others will require more QA.
36
36
37
37
### Safe to update:
38
38
@@ -48,13 +48,13 @@ Development-wise, I think we should always strive for universal changes if compo
48
48
49
49
## How can we include time for updating components during cycle work?
50
50
51
-
Keeping the design system relevant is important for consistency in our app. Core product requirements should still take priority, but we should make the design system updates necessary for each effort before tackling nice-to-haves.
51
+
Keeping the design system relevant is important for consistency in our app. Core product requirements should still take priority, but we should make the design system updates necessary for each effort before tackling nice-to-haves.
52
52
53
53
## ✏️ How do we write stories and documentation?
54
54
55
-
- For every component, we typically separate each variant out into its own story that gets exported.
55
+
- For every component, we typically separate each variant out into its own story that gets exported.
56
56
- Documentation lives in `Component.mdx` which references stories defined in `Component.stories.jsx`. See documentation style here in [Stories with arbitrary MDX](https://github.com/storybookjs/storybook/blob/master/addons/docs/docs/recipes.md#csf-stories-with-arbitrary-mdx).
57
-
- See our [Storybook Notion Doc](https://www.notion.so/userinterviews1/Storybook-9a3585db57514ec783e39c78518ad5e6) for examples.
57
+
- See our [Storybook Notion Doc](https://www.notion.so/userinterviews1/Storybook-9a3585db57514ec783e39c78518ad5e6) for examples.
58
58
59
59
# Future additions to this document
60
60
@@ -72,7 +72,7 @@ How do we determine whether it's a major, minor, or patch release?
72
72
# Developer Resources
73
73
74
74
## Initial Setup
75
-
After cloning the repo, obtain a `.npmrc` file from another developer. This file contains authorization tokens for any private
75
+
After cloning the repo, obtain a `.npmrc` file from another developer. This file contains authorization tokens for any private
76
76
node packages.
77
77
78
78
## Available Scripts
@@ -93,6 +93,18 @@ Runs the jest test suite
93
93
### `yarn lint`
94
94
95
95
Runs ESLint to report on any style violations
96
+
97
+
### `yarn rs:link`
98
+
99
+
Creates symlinks for packages needed to develop/debug against our `rails-server` repository.
100
+
101
+
### `yarn rs:link:watch`
102
+
103
+
Trigger a production build when files are changed.
104
+
105
+
### `yarn rs:unlink`
106
+
107
+
Remove symlinked packages.
96
108
### Visual testing
97
109
98
110
1. Join BrowserStack (ask Brian for link)
@@ -143,3 +155,29 @@ This package uses [Semantic versioning](https://semver.org/), which requires ver
143
155
* Run `git log $(git describe --tags --abbrev=0)..HEAD --oneline` to get a list of all commits since the latest release and copy these into the "Describe this release" field.
144
156
* Upload the binary that was created from running `npm pack`.
145
157
* Publish release.
158
+
159
+
## Developing against the Rails Server repo
160
+
161
+
### Starting up development
162
+
1. run these commands inside the root of the DS repo:
163
+
````bash
164
+
yarn rs:link && yarn rs:link:watch
165
+
````
166
+
💡 at this point you should see a nodemon process running
167
+
168
+
2. run these commands inside the root of the RS repo:
169
+
````bash
170
+
bin/link-ds
171
+
````
172
+
### Wrapping up development
173
+
1. run these commands inside the root of the RS repo:
174
+
````bash
175
+
bin/unlink-ds
176
+
````
177
+
2. run these commands inside the root of the DS repo:
178
+
````bash
179
+
yarn rs:unlink
180
+
````
181
+
182
+
#### 🤔 Snags
183
+
- you'll have to manually refresh your browser tab, after the automatic refresh, to see your expected changes.
0 commit comments