@1024pix/pix-ui 28.1.1 → 29.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.circleci/config.yml +1 -1
- package/CHANGELOG.md +18 -0
- package/addon/styles/_pix-banner.scss +2 -4
- package/addon/styles/_pix-button-base.scss +1 -3
- package/addon/styles/_pix-button.scss +2 -2
- package/addon/styles/_pix-checkbox.scss +3 -7
- package/addon/styles/_pix-collapsible.scss +4 -4
- package/addon/styles/_pix-dropdown.scss +2 -2
- package/addon/styles/_pix-filter-banner.scss +8 -11
- package/addon/styles/_pix-indicator-card.scss +9 -11
- package/addon/styles/_pix-input-code.scss +0 -1
- package/addon/styles/_pix-input-password.scss +5 -5
- package/addon/styles/_pix-input.scss +2 -4
- package/addon/styles/_pix-modal.scss +6 -10
- package/addon/styles/_pix-multi-select.scss +3 -7
- package/addon/styles/_pix-progress-gauge.scss +2 -5
- package/addon/styles/_pix-radio-button.scss +0 -1
- package/addon/styles/_pix-search-input.scss +1 -3
- package/addon/styles/_pix-select.scss +15 -19
- package/addon/styles/_pix-selectable-tag.scss +0 -2
- package/addon/styles/_pix-sidebar.scss +3 -3
- package/addon/styles/_pix-tag.scss +9 -11
- package/addon/styles/_pix-textarea.scss +0 -1
- package/addon/styles/_pix-toggle.scss +8 -8
- package/addon/styles/_pix-tooltip.scss +0 -1
- package/addon/styles/normalize-reset/_reset.scss +4 -0
- package/addon/styles/pix-design-tokens/_colors.scss +0 -370
- package/addon/styles/pix-design-tokens/_fonts.scss +11 -29
- package/addon/styles/pix-design-tokens/_form.scss +6 -9
- package/addon/styles/pix-design-tokens/_shadows.scss +10 -25
- package/addon/styles/pix-design-tokens/_spacing.scss +8 -8
- package/addon/styles/pix-design-tokens/_typography.scss +75 -213
- package/docs/design-tokens.stories.mdx +16 -8
- package/docs/pix-design-tokens-dev.stories.mdx +14 -15
- package/docs/shadow.stories.mdx +25 -0
- package/docs/spacing.stories.mdx +19 -0
- package/docs/typography.stories.mdx +160 -0
- package/package.json +2 -2
- package/public/fonts/OpenSans/OpenSans-Medium.ttf +0 -0
- package/public/fonts/Roboto/Roboto-Bold.ttf +0 -0
- package/public/fonts/OpenSans/OpenSans-Light.ttf +0 -0
- package/public/fonts/OpenSans/OpenSans-Regular.ttf +0 -0
- package/public/fonts/OpenSans/OpenSans-SemiBold.ttf +0 -0
- package/public/fonts/Roboto/Roboto-Light.ttf +0 -0
|
@@ -1,263 +1,125 @@
|
|
|
1
1
|
// See https://www.figma.com/file/8RJ3aCSfdeQ8AZZVBBYKS8/Design-System-Pix?node-id=24%3A8
|
|
2
2
|
|
|
3
|
-
//
|
|
4
|
-
|
|
3
|
+
// Placeholder pour permettre l'utilisation dans une classe css si jamais le tag html a trop de classe
|
|
4
|
+
%-pix-title {
|
|
5
5
|
font-family: $font-open-sans;
|
|
6
|
-
font-weight:
|
|
7
|
-
font-size: 4.5rem;
|
|
8
|
-
line-height: 5.5rem;
|
|
9
|
-
letter-spacing: -0.04em;
|
|
6
|
+
font-weight: 500;
|
|
10
7
|
}
|
|
11
8
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
font-size: 3.75rem;
|
|
16
|
-
line-height: 4.5rem;
|
|
17
|
-
letter-spacing: -0.04em;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
@mixin display3() {
|
|
21
|
-
font-family: $font-open-sans;
|
|
22
|
-
font-weight: $font-light;
|
|
23
|
-
font-size: 3rem;
|
|
24
|
-
line-height: 3.75rem;
|
|
25
|
-
letter-spacing: -0.04em;
|
|
9
|
+
%pix-title-l,
|
|
10
|
+
.pix-title-l {
|
|
11
|
+
@extend %-pix-title;
|
|
26
12
|
|
|
27
|
-
@include device-is('mobile') {
|
|
28
|
-
font-weight: $font-medium;
|
|
29
|
-
font-size: 2.25rem;
|
|
30
|
-
line-height: 2.75rem;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
@mixin h1() {
|
|
35
|
-
font-family: $font-open-sans;
|
|
36
|
-
font-weight: $font-light;
|
|
37
|
-
font-size: 2.5rem;
|
|
38
|
-
line-height: 3rem;
|
|
39
|
-
letter-spacing: -0.04em;
|
|
40
|
-
|
|
41
|
-
@include device-is('mobile') {
|
|
42
|
-
font-weight: $font-medium;
|
|
43
|
-
font-size: 2rem;
|
|
44
|
-
line-height: 2.5rem;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
@mixin h2() {
|
|
49
|
-
font-family: $font-open-sans;
|
|
50
|
-
font-weight: $font-medium;
|
|
51
13
|
font-size: 2rem;
|
|
52
|
-
line-height:
|
|
14
|
+
line-height: 1.25;
|
|
53
15
|
letter-spacing: -0.04em;
|
|
54
16
|
|
|
55
|
-
@include device-is('
|
|
56
|
-
font-size:
|
|
57
|
-
line-height: 2.25rem;
|
|
17
|
+
@include device-is('tablet') {
|
|
18
|
+
font-size: 2.5rem;
|
|
58
19
|
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
@mixin h3() {
|
|
62
|
-
font-family: $font-open-sans;
|
|
63
|
-
font-weight: $font-medium;
|
|
64
|
-
font-size: 1.75rem;
|
|
65
|
-
line-height: 2.25rem;
|
|
66
|
-
letter-spacing: -0.04em;
|
|
67
20
|
|
|
68
|
-
@include device-is('
|
|
69
|
-
font-size:
|
|
70
|
-
line-height: 2rem;
|
|
21
|
+
@include device-is('desktop') {
|
|
22
|
+
font-size: 3rem;
|
|
71
23
|
}
|
|
72
24
|
}
|
|
73
25
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
font-size: 1.5rem;
|
|
78
|
-
line-height: 2rem;
|
|
79
|
-
letter-spacing: -0.02em;
|
|
80
|
-
}
|
|
26
|
+
%pix-title-m,
|
|
27
|
+
.pix-title-m {
|
|
28
|
+
@extend %-pix-title;
|
|
81
29
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
font-size: 1.25rem;
|
|
86
|
-
line-height: 1.75rem;
|
|
87
|
-
|
|
88
|
-
@include device-is('mobile') {
|
|
89
|
-
font-size: 1.125rem;
|
|
90
|
-
line-height: 1.575rem;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
@mixin text() {
|
|
95
|
-
font-family: $font-roboto;
|
|
96
|
-
font-weight: $font-normal;
|
|
97
|
-
font-size: 1rem;
|
|
98
|
-
line-height: 1.375rem;
|
|
30
|
+
font-size: 1.625rem;
|
|
31
|
+
line-height: 1.3;
|
|
32
|
+
letter-spacing: -0.02em;
|
|
99
33
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
34
|
+
@include device-is('tablet') {
|
|
35
|
+
font-size: 2rem;
|
|
36
|
+
line-height: 1.25;
|
|
37
|
+
letter-spacing: -0.04em;
|
|
103
38
|
}
|
|
104
39
|
|
|
105
|
-
|
|
106
|
-
font-
|
|
107
|
-
color: $pix-primary;
|
|
40
|
+
@include device-is('desktop') {
|
|
41
|
+
font-size: 2.25rem;
|
|
108
42
|
}
|
|
109
43
|
}
|
|
110
44
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
font-weight: $font-medium;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
@mixin text-link() {
|
|
118
|
-
@include text;
|
|
119
|
-
|
|
120
|
-
font-weight: $font-medium;
|
|
121
|
-
color: $pix-primary;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
@mixin text-small() {
|
|
125
|
-
@include text;
|
|
126
|
-
|
|
127
|
-
font-size: 0.875rem;
|
|
128
|
-
line-height: 1.25rem;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
@mixin text-large() {
|
|
132
|
-
@include text;
|
|
45
|
+
%pix-title-s,
|
|
46
|
+
.pix-title-s {
|
|
47
|
+
@extend %-pix-title;
|
|
133
48
|
|
|
134
|
-
font-size: 1.
|
|
135
|
-
line-height: 1.
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
@mixin caption() {
|
|
139
|
-
font-family: $font-roboto;
|
|
140
|
-
font-weight: $font-normal;
|
|
141
|
-
font-size: 0.75rem;
|
|
142
|
-
line-height: 1.125rem;
|
|
49
|
+
font-size: 1.375rem;
|
|
50
|
+
line-height: 1.3;
|
|
51
|
+
letter-spacing: -0.02em;
|
|
143
52
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
font-weight: $font-bold;
|
|
53
|
+
@include device-is('tablet') {
|
|
54
|
+
font-size: 1.5rem;
|
|
147
55
|
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
@mixin caption-bold() {
|
|
151
|
-
@include caption;
|
|
152
|
-
|
|
153
|
-
font-weight: $font-bold;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
@mixin caption-uppercase() {
|
|
157
|
-
@include caption;
|
|
158
|
-
|
|
159
|
-
text-transform: uppercase;
|
|
160
|
-
}
|
|
161
56
|
|
|
162
|
-
@
|
|
163
|
-
|
|
164
|
-
font-weight: $font-normal;
|
|
165
|
-
font-size: 0.625rem;
|
|
166
|
-
line-height: 0.875rem;
|
|
167
|
-
letter-spacing: 0.02em;
|
|
168
|
-
|
|
169
|
-
b,
|
|
170
|
-
strong {
|
|
171
|
-
font-weight: $font-bold;
|
|
57
|
+
@include device-is('desktop') {
|
|
58
|
+
font-size: 1.75rem;
|
|
172
59
|
}
|
|
173
60
|
}
|
|
174
61
|
|
|
175
|
-
|
|
176
|
-
|
|
62
|
+
%pix-title-xs,
|
|
63
|
+
.pix-title-xs {
|
|
64
|
+
@extend %-pix-title;
|
|
177
65
|
|
|
178
|
-
font-
|
|
66
|
+
font-size: 1.25rem;
|
|
67
|
+
line-height: 1.4;
|
|
68
|
+
letter-spacing: -0.02em;
|
|
179
69
|
}
|
|
180
70
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
font-weight: $font-bold;
|
|
185
|
-
letter-spacing: 0.08em;
|
|
186
|
-
text-transform: uppercase;
|
|
71
|
+
%-pix-body {
|
|
72
|
+
font-family: $font-roboto;
|
|
73
|
+
font-weight: 400;
|
|
187
74
|
}
|
|
188
75
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
76
|
+
%pix-body-l,
|
|
77
|
+
.pix-body-l {
|
|
78
|
+
@extend %-pix-body;
|
|
192
79
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
}
|
|
80
|
+
font-size: 1rem;
|
|
81
|
+
line-height: 1.5;
|
|
196
82
|
|
|
197
|
-
|
|
198
|
-
|
|
83
|
+
@include device-is('tablet') {
|
|
84
|
+
font-size: 1.125rem;
|
|
85
|
+
}
|
|
199
86
|
}
|
|
200
87
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
88
|
+
%pix-body-m,
|
|
89
|
+
.pix-body-m {
|
|
90
|
+
@extend %-pix-body;
|
|
204
91
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
}
|
|
92
|
+
font-size: 0.875rem;
|
|
93
|
+
line-height: 1.5;
|
|
208
94
|
|
|
209
|
-
|
|
210
|
-
|
|
95
|
+
@include device-is('tablet') {
|
|
96
|
+
font-size: 1rem;
|
|
97
|
+
}
|
|
211
98
|
}
|
|
212
99
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
100
|
+
%pix-body-s,
|
|
101
|
+
.pix-body-s {
|
|
102
|
+
@extend %-pix-body;
|
|
216
103
|
|
|
217
|
-
|
|
218
|
-
|
|
104
|
+
font-size: 0.875rem;
|
|
105
|
+
line-height: 1.5;
|
|
219
106
|
}
|
|
220
107
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
&--bold {
|
|
225
|
-
@include text-bold;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
&--link {
|
|
229
|
-
@include text-link;
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
&--small {
|
|
233
|
-
@include text-small;
|
|
234
|
-
}
|
|
108
|
+
%pix-body-xs,
|
|
109
|
+
.pix-body-xs {
|
|
110
|
+
@extend %-pix-body;
|
|
235
111
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
112
|
+
font-size: 0.75rem;
|
|
113
|
+
line-height: 1.5;
|
|
114
|
+
letter-spacing: 0.02em;
|
|
239
115
|
}
|
|
240
116
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
&--bold {
|
|
245
|
-
@include caption-bold;
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
&--uppercase {
|
|
249
|
-
@include caption-uppercase;
|
|
250
|
-
}
|
|
117
|
+
%pix-body-weight-medium,
|
|
118
|
+
.pix-body-weight-medium {
|
|
119
|
+
font-weight: 500;
|
|
251
120
|
}
|
|
252
121
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
&--bold {
|
|
257
|
-
@include footer-bold;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
&--uppercase {
|
|
261
|
-
@include footer-uppercase;
|
|
262
|
-
}
|
|
122
|
+
%pix-body-weight-bold,
|
|
123
|
+
.pix-body-weight-bold {
|
|
124
|
+
font-weight: 700;
|
|
263
125
|
}
|
|
@@ -6,12 +6,12 @@ import { Meta } from '@storybook/addon-docs';
|
|
|
6
6
|
|
|
7
7
|
> Les design tokens contiennent plusieurs éléments de base de la charte graphique (les couleurs, la typographie, les icônes, etc.)
|
|
8
8
|
|
|
9
|
-
## Utiliser les classes, mixins et variables dans
|
|
9
|
+
## Utiliser les classes, placeholders, mixins et variables dans vos fichiers scss
|
|
10
10
|
|
|
11
|
-
En ajoutant la dépendance dans votre application avec `npm install`, vous avez déjà accès aux classes, mais pour avoir accès aux mixins et variables,
|
|
11
|
+
En ajoutant la dépendance dans votre application avec `npm install`, vous avez déjà accès aux classes, mais pour avoir accès aux placeholders, mixins et variables,
|
|
12
12
|
il faut ajouter le code ci-dessous dans le `new EmberApp()` de votre `ember-cli.build.js` qui se trouve à la racine du projet :
|
|
13
13
|
|
|
14
|
-
```
|
|
14
|
+
```js
|
|
15
15
|
sassOptions: {
|
|
16
16
|
includePaths: ['node_modules/@1024pix/pix-ui/addon/styles'],
|
|
17
17
|
},
|
|
@@ -19,15 +19,23 @@ sassOptions: {
|
|
|
19
19
|
|
|
20
20
|
Par la suite vous aurez accès à toutes les variables des design tokens avec le `$`, par exemple `border: 1px solid $pix-primary;`.
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
Par exemple :
|
|
22
|
+
Pour pouvoir utiliser les placeholders et mixins, il faudra importer les design tokens dans le fichier source :
|
|
25
23
|
|
|
24
|
+
```css
|
|
25
|
+
/* Fichier pix/orga/app/styles/app.scss */
|
|
26
|
+
@import 'pix-design-tokens';
|
|
26
27
|
```
|
|
27
|
-
@use 'design-tokens`;
|
|
28
28
|
|
|
29
|
+
Puis les utiliser de cette manière :
|
|
30
|
+
|
|
31
|
+
```css
|
|
32
|
+
/* Fichier pix/orga/app/styles/authenticated/organization.scss */
|
|
29
33
|
.organization-title {
|
|
30
|
-
@
|
|
34
|
+
@extend %pix-title-m;
|
|
35
|
+
|
|
36
|
+
@include device-is('desktop') {
|
|
37
|
+
...
|
|
38
|
+
}
|
|
31
39
|
}
|
|
32
40
|
```
|
|
33
41
|
|
|
@@ -10,31 +10,30 @@ import { Meta } from '@storybook/addon-docs';
|
|
|
10
10
|
|
|
11
11
|
Quand vous êtes amenés à ajouter ou à modifier des éléments des design tokens, faites le dans le scss associé,
|
|
12
12
|
par example `addon/styles/_typography.scss` ou `addon/styles/_colors.scss` et s'il n'est pas déjà importé, rajoutez l'import dans `addon/styles/design-tokens.scss`.
|
|
13
|
-
Ceci nous permettra d'utiliser les
|
|
13
|
+
Ceci nous permettra d'utiliser les placeholders dans nos applications par la suite.
|
|
14
14
|
|
|
15
|
-
Le standard d'équipe est de créer un
|
|
15
|
+
Le standard d'équipe est de créer un placeholder SCSS et une classe CSS préfixés par `pix-`.
|
|
16
16
|
|
|
17
17
|
Par exemple :
|
|
18
18
|
|
|
19
19
|
```
|
|
20
|
-
|
|
21
|
-
font-family: $font-
|
|
22
|
-
font-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
font-
|
|
20
|
+
%pix-title-large {
|
|
21
|
+
font-family: $font-open-sans;
|
|
22
|
+
font-size: 2rem;
|
|
23
|
+
line-height: 1.25;
|
|
24
|
+
letter-spacing: -0.04em;
|
|
25
|
+
font-weight: 500;
|
|
26
|
+
|
|
27
|
+
@include device-is('tablet') {
|
|
28
|
+
font-size: 2.5rem;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
font-
|
|
33
|
-
color: $pix-primary;
|
|
31
|
+
@include device-is('desktop') {
|
|
32
|
+
font-size: 3rem;
|
|
34
33
|
}
|
|
35
34
|
}
|
|
36
35
|
|
|
37
36
|
.pix-text {
|
|
38
|
-
@
|
|
37
|
+
@extend %pix-title-large;
|
|
39
38
|
}
|
|
40
39
|
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Meta } from '@storybook/addon-docs';
|
|
2
|
+
|
|
3
|
+
<Meta title="Utiliser Pix UI/Design Tokens/Ombres" />
|
|
4
|
+
|
|
5
|
+
# Ombres
|
|
6
|
+
|
|
7
|
+
Pour uniformiser les ombres dans nos applications, on dispose de plusieurs classes CSS :
|
|
8
|
+
|
|
9
|
+
- `pix-shadow-xs`
|
|
10
|
+
- `pix-shadow-sm`
|
|
11
|
+
- `pix-shadow-md`
|
|
12
|
+
- `pix-shadow-lg`
|
|
13
|
+
- `pix-shadow-xl`
|
|
14
|
+
|
|
15
|
+
Et leur équivalent en placeholder SCSS :
|
|
16
|
+
|
|
17
|
+
- `@extend %pix-shadow-xs;`
|
|
18
|
+
- `@extend %pix-shadow-sm;`
|
|
19
|
+
- `@extend %pix-shadow-md;`
|
|
20
|
+
- `@extend %pix-shadow-lg;`
|
|
21
|
+
- `@extend %pix-shadow-xl;`
|
|
22
|
+
|
|
23
|
+
Code associé : https://github.com/1024pix/pix-ui/blob/dev/addon/styles/pix-design-tokens/_shadows.scss
|
|
24
|
+
|
|
25
|
+
Lien Figma : https://www.figma.com/file/8RJ3aCSfdeQ8AZZVBBYKS8/Design-System-Pix?node-id=54%3A5141
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Meta, Canvas, Story } from '@storybook/addon-docs';
|
|
2
|
+
|
|
3
|
+
<Meta title="Utiliser Pix UI/Design Tokens/Espacements" />
|
|
4
|
+
|
|
5
|
+
# Espacements
|
|
6
|
+
|
|
7
|
+
Pour uniformiser les espacements dans nos applications, on dispose de plusieurs variables SCSS :
|
|
8
|
+
|
|
9
|
+
- `$pix-spacing-xxs`
|
|
10
|
+
- `$pix-spacing-xs`
|
|
11
|
+
- `$pix-spacing-s`
|
|
12
|
+
- `$pix-spacing-m`
|
|
13
|
+
- `$pix-spacing-l`
|
|
14
|
+
- `$pix-spacing-xl`
|
|
15
|
+
- `$pix-spacing-xxl`
|
|
16
|
+
|
|
17
|
+
Code associé : https://github.com/1024pix/pix-ui/blob/dev/addon/styles/pix-design-tokens/_spacing.scss
|
|
18
|
+
|
|
19
|
+
Lien Figma : https://www.figma.com/file/8RJ3aCSfdeQ8AZZVBBYKS8/Design-System-Pix?node-id=54%3A4595&t=8piOzYzdI0ala3i6-0
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
<!-- Typography.stories.mdx -->
|
|
2
|
+
|
|
3
|
+
import { Meta, Typeset } from '@storybook/addon-docs';
|
|
4
|
+
|
|
5
|
+
<Meta title="Utiliser Pix UI/Design Tokens/Typographie" />
|
|
6
|
+
|
|
7
|
+
# Typographie
|
|
8
|
+
|
|
9
|
+
Cette page permet de connaître les typographies qui sont disponibles dans `Pix-UI`. [Figma](https://www.figma.com/file/8RJ3aCSfdeQ8AZZVBBYKS8/Design-System-Pix?node-id=24-8&t=Nuq9GxVknLW0Qsbc-0) reste la source de vérité du design system de Pix.
|
|
10
|
+
|
|
11
|
+
Ce que l'on nomme typographie dans ce contexte est un ensemble de 5 éléments :
|
|
12
|
+
|
|
13
|
+
- Police d'écriture `font-family`
|
|
14
|
+
- Taille de la police `font-size`
|
|
15
|
+
- Hauteur de ligne `line-height`
|
|
16
|
+
- Graisse `font-weight`
|
|
17
|
+
- Espacement des caractères `letter-spacing`
|
|
18
|
+
|
|
19
|
+
On met à disposition dans Pix UI des utilitaires pour simplifier l'usage.
|
|
20
|
+
|
|
21
|
+
## Utilisation via placeholder SCSS
|
|
22
|
+
|
|
23
|
+
Des **placeholder SCSS** équivalents aux tokens de Figma sont disponibles. C'est l'usage recommandé en priorité.
|
|
24
|
+
|
|
25
|
+
### Titres
|
|
26
|
+
|
|
27
|
+
<Typeset
|
|
28
|
+
fontSizes={[48]}
|
|
29
|
+
fontWeight={500}
|
|
30
|
+
sampleText={'@extend %pix-title-l;'}
|
|
31
|
+
fontFamily={'"Open Sans", Arial, sans-serif'}
|
|
32
|
+
/>
|
|
33
|
+
|
|
34
|
+
<Typeset
|
|
35
|
+
fontSizes={[36]}
|
|
36
|
+
fontWeight={500}
|
|
37
|
+
sampleText={'@extend %pix-title-m;'}
|
|
38
|
+
fontFamily={'"Open Sans", Arial, sans-serif'}
|
|
39
|
+
/>
|
|
40
|
+
|
|
41
|
+
<Typeset
|
|
42
|
+
fontSizes={[28]}
|
|
43
|
+
fontWeight={500}
|
|
44
|
+
sampleText={'@extend %pix-title-s;'}
|
|
45
|
+
fontFamily={'"Open Sans", Arial, sans-serif'}
|
|
46
|
+
/>
|
|
47
|
+
|
|
48
|
+
<Typeset
|
|
49
|
+
fontSizes={[20]}
|
|
50
|
+
fontWeight={500}
|
|
51
|
+
sampleText={'@extend %pix-title-xs;'}
|
|
52
|
+
fontFamily={'"Open Sans", Arial, sans-serif'}
|
|
53
|
+
/>
|
|
54
|
+
|
|
55
|
+
### Corps de texte
|
|
56
|
+
|
|
57
|
+
<Typeset
|
|
58
|
+
fontSizes={[18]}
|
|
59
|
+
fontWeight={400}
|
|
60
|
+
sampleText={'@extend %pix-body-l;'}
|
|
61
|
+
fontFamily={'Roboto, Arial, sans-serif'}
|
|
62
|
+
/>
|
|
63
|
+
|
|
64
|
+
<Typeset
|
|
65
|
+
fontSizes={[16]}
|
|
66
|
+
fontWeight={400}
|
|
67
|
+
sampleText={'@extend %pix-body-m;'}
|
|
68
|
+
fontFamily={'Roboto, Arial, sans-serif'}
|
|
69
|
+
/>
|
|
70
|
+
|
|
71
|
+
<Typeset
|
|
72
|
+
fontSizes={[14]}
|
|
73
|
+
fontWeight={400}
|
|
74
|
+
sampleText={'@extend %pix-body-s;'}
|
|
75
|
+
fontFamily={'Roboto, Arial, sans-serif'}
|
|
76
|
+
/>
|
|
77
|
+
|
|
78
|
+
<Typeset
|
|
79
|
+
fontSizes={[12]}
|
|
80
|
+
fontWeight={400}
|
|
81
|
+
sampleText={'@extend %pix-body-xs;'}
|
|
82
|
+
fontFamily={'Roboto, Arial, sans-serif'}
|
|
83
|
+
/>
|
|
84
|
+
|
|
85
|
+
#### Variantes de gras
|
|
86
|
+
|
|
87
|
+
Pour les corps, on peut préciser une graisse différente en complément :
|
|
88
|
+
|
|
89
|
+
<Typeset
|
|
90
|
+
fontSizes={[16]}
|
|
91
|
+
fontWeight={500}
|
|
92
|
+
sampleText={'@extend %pix-weight-medium;'}
|
|
93
|
+
fontFamily={'Roboto, Arial, sans-serif'}
|
|
94
|
+
/>
|
|
95
|
+
|
|
96
|
+
<Typeset
|
|
97
|
+
fontSizes={[16]}
|
|
98
|
+
fontWeight={700}
|
|
99
|
+
sampleText={'@extend %pix-weight-bold;'}
|
|
100
|
+
fontFamily={'Roboto, Arial, sans-serif'}
|
|
101
|
+
/>
|
|
102
|
+
|
|
103
|
+
### Comment utiliser un placeholder SCSS ?
|
|
104
|
+
|
|
105
|
+
```css
|
|
106
|
+
.card__title {
|
|
107
|
+
@extend %pix-title-m;
|
|
108
|
+
|
|
109
|
+
color: $pix-neutral-70;
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Contrairement à l'utilisation de mixins, le CSS compilé ne sera que très peu surchargé. Il ressemblera à ceci :
|
|
114
|
+
|
|
115
|
+
```css
|
|
116
|
+
.pix-title-m,
|
|
117
|
+
.card__title {
|
|
118
|
+
font-family: 'Open Sans', Arial, sans-serif;
|
|
119
|
+
font-size: 2rem;
|
|
120
|
+
line-height: 1.25;
|
|
121
|
+
letter-spacing: -0.04em;
|
|
122
|
+
font-weight: 500;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.card__title {
|
|
126
|
+
color: #344563;
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Utilisation via classe CSS
|
|
131
|
+
|
|
132
|
+
Pour chaque placeholder SCSS, une **classe CSS** utilitaire de même nom existe :
|
|
133
|
+
|
|
134
|
+
- `pix-title-l`
|
|
135
|
+
- `pix-title-m`
|
|
136
|
+
- `pix-title-s`
|
|
137
|
+
- `pix-title-xs`
|
|
138
|
+
- `pix-body-l`
|
|
139
|
+
- `pix-body-m`
|
|
140
|
+
- `pix-body-s`
|
|
141
|
+
- `pix-body-xs`
|
|
142
|
+
|
|
143
|
+
## Détails techniques
|
|
144
|
+
|
|
145
|
+
On utilise sur les applications Pix deux polices d'écriture :
|
|
146
|
+
|
|
147
|
+
- Open Sans pour les titres
|
|
148
|
+
- Roboto pour les corps
|
|
149
|
+
|
|
150
|
+
Selon qu'on utilise un smartphone, une tablette ou un ordinateur de bureau on peut se placer plus ou moins proche de l'écran.
|
|
151
|
+
Aussi, le choix de design a été fait de faire varier les typographies en fonction de largeur du viewport de l'utilisateur.
|
|
152
|
+
|
|
153
|
+
Ce choix est abstrait par l'utilisation des classes CSS ou mixins citées plus haut.
|
|
154
|
+
|
|
155
|
+
Code associé :
|
|
156
|
+
|
|
157
|
+
- https://github.com/1024pix/pix-ui/blob/dev/addon/styles/pix-design-tokens/_fonts.scss
|
|
158
|
+
- https://github.com/1024pix/pix-ui/blob/dev/addon/styles/pix-design-tokens/_typography.scss
|
|
159
|
+
|
|
160
|
+
Lien Figma : https://www.figma.com/file/8RJ3aCSfdeQ8AZZVBBYKS8/Design-System-Pix?node-id=24%3A8
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@1024pix/pix-ui",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "29.0.0",
|
|
4
4
|
"description": "Pix-UI is the implementation of Pix design principles and guidelines for its products.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ember-addon"
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"@ember/render-modifiers": "^2.0.5",
|
|
68
68
|
"@ember/string": "^3.0.1",
|
|
69
69
|
"@ember/test-helpers": "^2.8.1",
|
|
70
|
-
"@embroider/test-setup": "^
|
|
70
|
+
"@embroider/test-setup": "^2.1.1",
|
|
71
71
|
"@fortawesome/ember-fontawesome": "^0.4.1",
|
|
72
72
|
"@fortawesome/free-regular-svg-icons": "^6.2.1",
|
|
73
73
|
"@fortawesome/free-solid-svg-icons": "^6.2.1",
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|