@khanacademy/wonder-blocks-typography 4.3.8 → 5.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/docs.md DELETED
@@ -1,254 +0,0 @@
1
- ```js
2
- import {View} from "@khanacademy/wonder-blocks-core";
3
- import {
4
- Title,
5
- HeadingLarge,
6
- HeadingMedium,
7
- HeadingSmall,
8
- HeadingXSmall,
9
- BodySerifBlock,
10
- BodySerif,
11
- BodyMonospace,
12
- Body,
13
- LabelLarge,
14
- LabelMedium,
15
- LabelSmall,
16
- LabelXSmall,
17
- Tagline,
18
- Caption,
19
- Footnote
20
- } from "@khanacademy/wonder-blocks-typography";
21
-
22
- // NOTE(mdr): I added an `id` attribute to each of these tags, to ensure that
23
- // they all pass the `id` attribute correctly. This fact will be saved in
24
- // snapshot tests.
25
- <View>
26
- <Title id="example-Title">Title</Title>
27
- <HeadingLarge id="example-HeadingLarge">HeadingLarge</HeadingLarge>
28
- <HeadingMedium id="example-HeadingMedium">HeadingMedium</HeadingMedium>
29
- <HeadingSmall id="example-HeadingSmall">HeadingSmall</HeadingSmall>
30
- <HeadingXSmall id="example-HeadingXSmall">HeadingXSmall</HeadingXSmall>
31
- <BodySerifBlock id="example-BodySerifBlock">BodySerifBlock</BodySerifBlock>
32
- <BodySerif id="example-BodySerif">BodySerif</BodySerif>
33
- <BodyMonospace id="example-BodyMonospace">BodyMonospace</BodyMonospace>
34
- <Body id="example-Body">Body</Body>
35
- <LabelLarge id="example-LabelLarge">LabelLarge</LabelLarge>
36
- <LabelMedium id="example-LabelMedium">LabelMedium</LabelMedium>
37
- <LabelSmall id="example-LabelSmall">LabelSmall</LabelSmall>
38
- <LabelXSmall id="example-LabelXSmall">LabelXSmall</LabelXSmall>
39
- <Tagline id="example-Tagline">Tagline</Tagline>
40
- <Caption id="example-Caption">Caption</Caption>
41
- <Footnote id="example-Footnote">Footnote</Footnote>
42
- </View>
43
- ```
44
-
45
- You can change the color of text with the `style` prop:
46
-
47
- ```js
48
- import {StyleSheet} from "aphrodite";
49
-
50
- import Color from "@khanacademy/wonder-blocks-color";
51
- import {Title} from "@khanacademy/wonder-blocks-typography";
52
-
53
- const styles = StyleSheet.create({
54
- blueText: {
55
- color: Color.blue,
56
- },
57
- });
58
-
59
- <Title style={styles.blueText}>Blue Title</Title>
60
- ```
61
-
62
- ## Accessibility
63
-
64
- The `role` and any `aria-` attribute can be set as props any of the typography
65
- components
66
-
67
- ```js
68
- import {Title} from "@khanacademy/wonder-blocks-typography";
69
-
70
- <Title aria-label="Accessible Title">Title</Title>
71
- ```
72
-
73
- ## Lato is used for Latin and Cyrillic languages
74
-
75
- This is a example where we use Lato for Russian:
76
-
77
- ```js
78
- import {View} from "@khanacademy/wonder-blocks-core";
79
- import {
80
- Title,
81
- HeadingLarge,
82
- HeadingMedium,
83
- HeadingSmall,
84
- HeadingXSmall,
85
- BodySerifBlock,
86
- BodySerif,
87
- BodyMonospace,
88
- Body,
89
- LabelLarge,
90
- LabelMedium,
91
- LabelSmall,
92
- LabelXSmall,
93
- Tagline,
94
- Caption,
95
- Footnote
96
- } from "@khanacademy/wonder-blocks-typography";
97
-
98
- <View>
99
- <Title>Для каждого ученика, независимо от возраста. Реальные результаты!</Title>
100
- <HeadingLarge>Для каждого ученика, независимо от возраста. Реальные результаты!</HeadingLarge>
101
- <HeadingMedium>Для каждого ученика, независимо от возраста. Реальные результаты!</HeadingMedium>
102
- <HeadingSmall>Для каждого ученика, независимо от возраста. Реальные результаты!</HeadingSmall>
103
- <HeadingXSmall>Для каждого ученика, независимо от возраста. Реальные результаты!</HeadingXSmall>
104
- <BodySerifBlock>Для каждого ученика, независимо от возраста. Реальные результаты!</BodySerifBlock>
105
- <BodySerif>Для каждого ученика, независимо от возраста. Реальные результаты!</BodySerif>
106
- <BodyMonospace>Для каждого ученика, независимо от возраста. Реальные результаты!</BodyMonospace>
107
- <Body>Для каждого ученика, независимо от возраста. Реальные результаты!</Body>
108
- <LabelLarge>Для каждого ученика, независимо от возраста. Реальные результаты!</LabelLarge>
109
- <LabelMedium>Для каждого ученика, независимо от возраста. Реальные результаты!</LabelMedium>
110
- <LabelSmall>Для каждого ученика, независимо от возраста. Реальные результаты!</LabelSmall>
111
- <LabelXSmall>Для каждого ученика, независимо от возраста. Реальные результаты!</LabelXSmall>
112
- <Tagline>Для каждого ученика, независимо от возраста. Реальные результаты!</Tagline>
113
- <Caption>Для каждого ученика, независимо от возраста. Реальные результаты!</Caption>
114
- <Footnote>Для каждого ученика, независимо от возраста. Реальные результаты!</Footnote>
115
- </View>
116
- ```
117
-
118
- ## Lato (Latin and Latin extended) for Vietnamese
119
-
120
- This is another example where we use Lato latin for Vietnamese. In this specific
121
- case, we also use the extended glyphs so we can add full support to Vietnamese
122
- using this font.
123
-
124
- ```js
125
- import {View} from "@khanacademy/wonder-blocks-core";
126
- import {
127
- Title,
128
- HeadingLarge,
129
- HeadingMedium,
130
- HeadingSmall,
131
- HeadingXSmall,
132
- BodySerifBlock,
133
- BodySerif,
134
- BodyMonospace,
135
- Body,
136
- LabelLarge,
137
- LabelMedium,
138
- LabelSmall,
139
- LabelXSmall,
140
- Tagline,
141
- Caption,
142
- Footnote
143
- } from "@khanacademy/wonder-blocks-typography";
144
-
145
- <View>
146
- <Title>Dành cho mọi học sinh, mọi lớp học. Kết quả thực tế.</Title>
147
- <HeadingLarge>Dành cho mọi học sinh, mọi lớp học. Kết quả thực tế.</HeadingLarge>
148
- <HeadingMedium>Dành cho mọi học sinh, mọi lớp học. Kết quả thực tế.</HeadingMedium>
149
- <HeadingSmall>Dành cho mọi học sinh, mọi lớp học. Kết quả thực tế.</HeadingSmall>
150
- <HeadingXSmall>Dành cho mọi học sinh, mọi lớp học. Kết quả thực tế.</HeadingXSmall>
151
- <BodySerifBlock>Dành cho mọi học sinh, mọi lớp học. Kết quả thực tế.</BodySerifBlock>
152
- <BodySerif>Dành cho mọi học sinh, mọi lớp học. Kết quả thực tế.</BodySerif>
153
- <BodyMonospace>Dành cho mọi học sinh, mọi lớp học. Kết quả thực tế.</BodyMonospace>
154
- <Body>Dành cho mọi học sinh, mọi lớp học. Kết quả thực tế.</Body>
155
- <LabelLarge>Dành cho mọi học sinh, mọi lớp học. Kết quả thực tế.</LabelLarge>
156
- <LabelMedium>Dành cho mọi học sinh, mọi lớp học. Kết quả thực tế.</LabelMedium>
157
- <LabelSmall>Dành cho mọi học sinh, mọi lớp học. Kết quả thực tế.</LabelSmall>
158
- <LabelXSmall>Dành cho mọi học sinh, mọi lớp học. Kết quả thực tế.</LabelXSmall>
159
- <Tagline>Dành cho mọi học sinh, mọi lớp học. Kết quả thực tế.</Tagline>
160
- <Caption>Dành cho mọi học sinh, mọi lớp học. Kết quả thực tế.</Caption>
161
- <Footnote>Dành cho mọi học sinh, mọi lớp học. Kết quả thực tế.</Footnote>
162
- </View>
163
- ```
164
-
165
-
166
- ## Noto for non-Latin languages
167
-
168
- ```js
169
- import {View} from "@khanacademy/wonder-blocks-core";
170
- import {OptionItem, SingleSelect} from "@khanacademy/wonder-blocks-dropdown";
171
- import {
172
- Title,
173
- HeadingLarge,
174
- HeadingMedium,
175
- HeadingSmall,
176
- HeadingXSmall,
177
- BodySerifBlock,
178
- BodySerif,
179
- BodyMonospace,
180
- Body,
181
- LabelLarge,
182
- LabelMedium,
183
- LabelSmall,
184
- LabelXSmall,
185
- Tagline,
186
- Caption,
187
- Footnote
188
- } from "@khanacademy/wonder-blocks-typography";
189
-
190
- const languages = {
191
- arabic: { text: "مرحبا", dir: "rtl" },
192
- armenian: { text: "Բարեւ" },
193
- greek: { text: "γεια σας" },
194
- hebrew: { text: "שלום", dir: "rtl" }
195
- };
196
-
197
- class LanguageSelector extends React.Component {
198
- constructor() {
199
- super();
200
- this.state = {
201
- selectedValue: "arabic"
202
- };
203
- }
204
-
205
- renderTypography() {
206
- const {text, dir} = this.props.languages[this.state.selectedValue];
207
-
208
- return (
209
- <React.Fragment>
210
- <Title dir={dir}>{text}</Title>
211
- <HeadingLarge dir={dir}>{text}</HeadingLarge>
212
- <HeadingMedium dir={dir}>{text}</HeadingMedium>
213
- <HeadingSmall dir={dir}>{text}</HeadingSmall>
214
- <HeadingXSmall dir={dir}>{text}</HeadingXSmall>
215
- <BodySerifBlock dir={dir}>{text}</BodySerifBlock>
216
- <BodySerif dir={dir}>{text}</BodySerif>
217
- <BodyMonospace dir={dir}>{text}</BodyMonospace>
218
- <Body dir={dir}>{text}</Body>
219
- <LabelLarge dir={dir}>{text}</LabelLarge>
220
- <LabelMedium dir={dir}>{text}</LabelMedium>
221
- <LabelSmall dir={dir}>{text}</LabelSmall>
222
- <LabelXSmall dir={dir}>{text}</LabelXSmall>
223
- <Tagline dir={dir}>{text}</Tagline>
224
- <Caption dir={dir}>{text}</Caption>
225
- <Footnote dir={dir}>{text}</Footnote>
226
- </React.Fragment>
227
- );
228
- }
229
-
230
- render() {
231
- return (
232
- <React.Fragment>
233
- <SingleSelect
234
- aria-labelledby="language-selector"
235
- id="unique-language-selector"
236
- placeholder="Select language"
237
- onChange={(selectedValue) => this.setState({selectedValue})}
238
- selectedValue={this.state.selectedValue}
239
- >
240
- {Object.keys(this.props.languages).map((item, key) => (
241
- <OptionItem label={item} value={item} key={key} />
242
- ))}
243
- </SingleSelect>
244
-
245
- {this.renderTypography()}
246
- </React.Fragment>
247
- );
248
- }
249
- }
250
-
251
- <View>
252
- <LanguageSelector languages={languages} />
253
- </View>
254
- ```