@symbo.ls/preview 0.0.9

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.
Files changed (117) hide show
  1. package/.babelrc.js +5 -0
  2. package/.coveralls.yml +1 -0
  3. package/.eslintignore +1 -0
  4. package/.eslintrc.js +15 -0
  5. package/.prettierrc +4 -0
  6. package/.symbols/button-archived/index.js +63 -0
  7. package/.symbols/button-archived/style.js +5 -0
  8. package/.symbols/button-circle/index.js +62 -0
  9. package/.symbols/button-contacts/index.js +48 -0
  10. package/.symbols/button-contacts/style.js +13 -0
  11. package/.symbols/button-download/index.js +59 -0
  12. package/.symbols/button-pro/index.js +98 -0
  13. package/.symbols/button-pro/style.js +19 -0
  14. package/.symbols/button-theme-switcher/index.js +104 -0
  15. package/.symbols/button-theme-switcher/style.js +16 -0
  16. package/.symbols/button-user/index.js +82 -0
  17. package/.symbols/button-user/style.js +25 -0
  18. package/.symbols/categories.js +44 -0
  19. package/.symbols/datepicker/index.js +40 -0
  20. package/.symbols/datepicker/style.js +4 -0
  21. package/.symbols/dropdown-list/index.js +56 -0
  22. package/.symbols/field/index.js +40 -0
  23. package/.symbols/index.js +33 -0
  24. package/.symbols/label/index.js +40 -0
  25. package/.symbols/notification/index.js +49 -0
  26. package/.symbols/notification/style.js +5 -0
  27. package/.symbols/pills/index.js +37 -0
  28. package/.symbols/tooltip/index.js +38 -0
  29. package/.vscode/settings.json +3 -0
  30. package/README.md +19 -0
  31. package/app.webmanifest +4 -0
  32. package/index.html +22 -0
  33. package/package.json +48 -0
  34. package/protect-pwd.js +65 -0
  35. package/src/animations.js +71 -0
  36. package/src/app.js +79 -0
  37. package/src/assets/dots.png +0 -0
  38. package/src/assets/dotsDark.png +0 -0
  39. package/src/assets/fonts/FiraGO/FiraGO-Bold.woff2 +0 -0
  40. package/src/assets/fonts/FiraGO/FiraGO-Light.woff2 +0 -0
  41. package/src/assets/fonts/FiraGO/FiraGO-Medium.woff2 +0 -0
  42. package/src/assets/fonts/FiraGO/FiraGO-Regular.woff2 +0 -0
  43. package/src/assets/fonts/europa-bold-webfont.woff2 +0 -0
  44. package/src/assets/fonts/europa-bolditalic-webfont.woff2 +0 -0
  45. package/src/assets/fonts/europa-light-webfont.woff2 +0 -0
  46. package/src/assets/fonts/europa-lightitalic-webfont.woff2 +0 -0
  47. package/src/assets/fonts/europa-regular-webfont.woff2 +0 -0
  48. package/src/assets/fonts/europa-regularitalic-webfont.woff2 +0 -0
  49. package/src/assets/ovalCircle.svg +9 -0
  50. package/src/components/Header.js +21 -0
  51. package/src/components/index.js +3 -0
  52. package/src/config/color.js +8 -0
  53. package/src/config/font.js +0 -0
  54. package/src/config/index.js +19 -0
  55. package/src/config/theme.js +85 -0
  56. package/src/dev.html +19 -0
  57. package/src/index.js +33 -0
  58. package/src/pages/Account/index.js +241 -0
  59. package/src/pages/Account/setUpProject.js +142 -0
  60. package/src/pages/Color/colors.js +58 -0
  61. package/src/pages/Color/documentThemes.js +101 -0
  62. package/src/pages/Color/index.js +20 -0
  63. package/src/pages/Color/style.js +7 -0
  64. package/src/pages/Color/themes.js +131 -0
  65. package/src/pages/ColorEditor/colorTone.js +163 -0
  66. package/src/pages/ColorEditor/friendTheme.js +30 -0
  67. package/src/pages/ColorEditor/index.js +178 -0
  68. package/src/pages/ColorEditor/interactivity.js +116 -0
  69. package/src/pages/ColorEditor/ntc.js +1689 -0
  70. package/src/pages/ColorEditor/style.js +49 -0
  71. package/src/pages/ColorEditor/themingTools.js +107 -0
  72. package/src/pages/Components/grid.js +94 -0
  73. package/src/pages/Components/index.js +40 -0
  74. package/src/pages/Components/sidebar.js +23 -0
  75. package/src/pages/Components/style.js +16 -0
  76. package/src/pages/DesignSystem/index.js +106 -0
  77. package/src/pages/DesignSystem/style.js +1 -0
  78. package/src/pages/Editor/index.js +46 -0
  79. package/src/pages/Editor/layers.js +126 -0
  80. package/src/pages/Editor/scene.js +97 -0
  81. package/src/pages/Editor/style.js +13 -0
  82. package/src/pages/Editor/tools.js +360 -0
  83. package/src/pages/Export/_tools_old.js +49 -0
  84. package/src/pages/Export/const.js +18 -0
  85. package/src/pages/Export/description.js +56 -0
  86. package/src/pages/Export/index.js +74 -0
  87. package/src/pages/Export/scene.js +62 -0
  88. package/src/pages/Export/state.js +21 -0
  89. package/src/pages/Export/style.js +21 -0
  90. package/src/pages/Export/tools.js +14 -0
  91. package/src/pages/Icons/index.js +72 -0
  92. package/src/pages/Icons/style.js +1 -0
  93. package/src/pages/Library/index.js +32 -0
  94. package/src/pages/Library/style.js +36 -0
  95. package/src/pages/PageExtend.js +12 -0
  96. package/src/pages/Shapes/index.js +161 -0
  97. package/src/pages/Shapes/style.js +28 -0
  98. package/src/pages/Spaces/boxModel.js +3 -0
  99. package/src/pages/Spaces/index.js +58 -0
  100. package/src/pages/Spaces/preview.js +133 -0
  101. package/src/pages/Spaces/sequence.js +3 -0
  102. package/src/pages/Spaces/state.js +18 -0
  103. package/src/pages/Spaces/style.js +30 -0
  104. package/src/pages/Typography/docFonts.js +128 -0
  105. package/src/pages/Typography/docStyles.js +97 -0
  106. package/src/pages/Typography/index.js +52 -0
  107. package/src/pages/Typography/shared.js +10 -0
  108. package/src/pages/Typography/state.js +15 -0
  109. package/src/pages/Typography/style.js +11 -0
  110. package/src/pages/Typography/typeScale.js +104 -0
  111. package/src/pages/index.js +13 -0
  112. package/src/protect.js +114 -0
  113. package/src/state.js +7 -0
  114. package/src/style.js +7 -0
  115. package/src/test.js +30 -0
  116. package/svgSprite.config.js +7 -0
  117. package/test/index.test.js +5 -0
@@ -0,0 +1,13 @@
1
+ 'use strict'
2
+
3
+ export default {
4
+ // border: '1px solid red',
5
+ flexDirection: 'column',
6
+ '> div': {
7
+ // border: '5px solid green',
8
+ flex: 1
9
+ },
10
+ aside: {
11
+ width: '223px'
12
+ }
13
+ }
@@ -0,0 +1,360 @@
1
+ 'use strict'
2
+
3
+ import { Shape, Block, Flex, Text, SquareButton, ButtonSet, ClickableItem, ThemeSwitcher, ToolItem } from '@symbo.ls/components'
4
+
5
+ const commonComponent = {
6
+ extend: Block,
7
+ caption: {
8
+ extend: [Block, Text],
9
+ props: {
10
+ padding: 'A X'
11
+ },
12
+ style: {
13
+ opacity: '.35',
14
+ textTransform: 'capitalize'
15
+ }
16
+ },
17
+ toolsContainer: {
18
+ extend: [Block, Shape, Flex],
19
+ props: {
20
+ gap: 'A',
21
+ padding: 'A 0',
22
+ round: 'A'
23
+ },
24
+ style: {
25
+ flexDirection: 'column',
26
+ alignItems: 'center',
27
+ background: 'rgba(255, 255, 255, .06)'
28
+ },
29
+ tools: {
30
+ extend: [Block, Flex],
31
+ props: { gap: 'A' },
32
+ style: {
33
+ flexDirection: 'column'
34
+ },
35
+ childExtend: {
36
+ extend: ToolItem,
37
+ icon: { },
38
+ tool: {
39
+ props: { padding: 'X2' },
40
+ button0: { props: { size: 'B' } },
41
+ value: {
42
+ props: { size: 'A' },
43
+ style: { color: 'white', opacity: 1 }
44
+ },
45
+ range: {},
46
+ button1: { props: { size: 'B' } },
47
+ button2: {
48
+ extend: [SquareButton, ClickableItem],
49
+ props: {
50
+ icon: 'arrowAngleMirroringVertical',
51
+ size: 'B',
52
+ padding: 'X'
53
+ }
54
+ }
55
+ }
56
+ },
57
+ ...[{}]
58
+ }
59
+ }
60
+ }
61
+
62
+ const themeSwitcher = {
63
+ extend: ThemeSwitcher,
64
+ props: {
65
+ padding: 'Y2 X2 Y2 Z'
66
+ },
67
+ themePreview: {
68
+ props: {
69
+ round: 'Y',
70
+ text: 'A'
71
+ },
72
+ style: {
73
+ background: 'rgba(53, 31, 89, .35)',
74
+ width: '24px',
75
+ height: '24px'
76
+ },
77
+ dot: {
78
+ style: {
79
+ top: '6px',
80
+ right: '6px'
81
+ }
82
+ }
83
+ },
84
+
85
+ title: {
86
+ extend: [Flex, Block],
87
+ props: { gap: 'W' },
88
+ style: { flexDirection: 'column' },
89
+ text: 'Revolver',
90
+ span: {
91
+ text: 'Call to action',
92
+ style: {
93
+ display: 'block',
94
+ opacity: '.4'
95
+ }
96
+ }
97
+ },
98
+ button0: { props: { size: 'B' } },
99
+ button1: {
100
+ props: {
101
+ icon: 'arrowAngleMirroringVertical',
102
+ size: 'B'
103
+ }
104
+ }
105
+ }
106
+
107
+ const style = {
108
+ extend: commonComponent,
109
+ caption: {
110
+ props: { text: 'style' }
111
+ },
112
+ toolsContainer: {
113
+ themeSwitcher,
114
+ tools: {
115
+ ...[
116
+ {
117
+ icon: { name: 'colorOpacity' },
118
+
119
+ tool: {
120
+ button0: {},
121
+ value: { text: '100%' },
122
+ range: {},
123
+ button1: {},
124
+ button2: 0
125
+ }
126
+ },
127
+
128
+ {
129
+ icon: { name: 'textCaseTitle' },
130
+
131
+ tool: {
132
+ button0: {},
133
+ value: { text: '100%' },
134
+ range: {},
135
+ button1: {},
136
+ button2: null
137
+ }
138
+ }
139
+ ]
140
+ }
141
+ }
142
+ }
143
+
144
+ const spaces = {
145
+ extend: commonComponent,
146
+ caption: { props: { text: 'spaces' } },
147
+ toolsContainer: {
148
+ tools: {
149
+ ...[
150
+ {
151
+ icon: { name: 'fontSize' },
152
+ tool: {
153
+ button0: {},
154
+ value: { text: '16px' },
155
+ range: {},
156
+ button1: {},
157
+ button2: null
158
+ }
159
+ },
160
+
161
+ {
162
+ icon: { name: 'spacesOutline' },
163
+
164
+ tool: {
165
+ button0: {},
166
+ value: {
167
+ text: '1.618',
168
+ style: {
169
+ flex: 1,
170
+ textAlign: 'center'
171
+ }
172
+ },
173
+ range: null,
174
+ button1: {
175
+ style: {
176
+ marginRight: '6px'
177
+ }
178
+ },
179
+ button2: {}
180
+ }
181
+ }
182
+ ]
183
+ }
184
+ }
185
+ }
186
+
187
+ const border = {
188
+ extend: commonComponent,
189
+ caption: { props: { text: 'border' } },
190
+ toolsContainer: {
191
+ tools: {
192
+ ...[
193
+ {
194
+ icon: { name: 'borderWeight' },
195
+
196
+ tool: {
197
+ button0: {},
198
+ value: { text: '16px' },
199
+ range: {},
200
+ button1: {},
201
+ button2: 0
202
+ }
203
+ },
204
+
205
+ {
206
+ icon: { name: 'borderOpacity' },
207
+
208
+ tool: {
209
+ button0: {},
210
+ value: { text: '1.618' },
211
+ range: {},
212
+ button1: {},
213
+ button2: null
214
+ }
215
+ }
216
+ ]
217
+ }
218
+ }
219
+ }
220
+
221
+ const form = {
222
+ extend: commonComponent,
223
+ caption: { props: { text: 'form' } },
224
+ toolsContainer: {
225
+ tools: {
226
+ ...[
227
+ {
228
+ icon: { name: 'shapes' },
229
+
230
+ tool: {
231
+ button0: null,
232
+ box: {
233
+ extend: [Block, Shape],
234
+ props: {
235
+ round: 'X2'
236
+ },
237
+ style: {
238
+ width: '13px',
239
+ height: '13px',
240
+ background: 'rgba(255, 255, 255, .1)',
241
+ border: '1px solid rgba(255, 255, 255, .1)',
242
+ marginLeft: '2px',
243
+ marginRight: '5px'
244
+ }
245
+ },
246
+ value: {
247
+ text: 'Rounded',
248
+ style: {
249
+ flex: '1'
250
+ }
251
+ },
252
+ range: null,
253
+ button1: null,
254
+ button2: {}
255
+ }
256
+ },
257
+
258
+ {
259
+ icon: { name: 'borderRadius' },
260
+
261
+ tool: {
262
+ button0: {},
263
+ value: {
264
+ text: '1.618',
265
+ style: {
266
+ flex: 1,
267
+ textAlign: 'center'
268
+ }
269
+ },
270
+ range: null,
271
+ button1: { style: { marginRight: '6px' } },
272
+ button2: {}
273
+ }
274
+ }
275
+ ]
276
+ }
277
+ }
278
+ }
279
+
280
+ export const accessibilityButoons = {
281
+ extend: ButtonSet,
282
+ props: {
283
+ gap: 'A1',
284
+ padding: '0 0 Z 0'
285
+ },
286
+
287
+ childExtend: {
288
+ extend: SquareButton,
289
+ props: {
290
+ theme: 'transparent',
291
+ size: 'C'
292
+ }
293
+ },
294
+ ...[
295
+ { props: { icon: 'crossmark' } },
296
+ { props: { icon: 'url' } },
297
+ { props: { icon: 'keyboard' } },
298
+ { props: { icon: 'arrayOutline' } },
299
+ { props: { icon: 'mouse' } }
300
+ ]
301
+ }
302
+
303
+ const accessibility = {
304
+ extend: commonComponent,
305
+ caption: { props: { text: 'accessibility' } },
306
+ toolsContainer: {
307
+ accessibilityButoons,
308
+ tools: {
309
+ ...[
310
+ {
311
+ icon: { name: 'eyeOpen' },
312
+
313
+ tool: {
314
+ button0: null,
315
+ box: {
316
+ extend: [Block, Shape],
317
+ props: {
318
+ round: 'X2'
319
+ },
320
+ style: {
321
+ width: '13px',
322
+ height: '13px',
323
+ background: 'rgba(255, 255, 255, .1)',
324
+ border: '1px solid rgba(255, 255, 255, .1)',
325
+ marginLeft: '2px',
326
+ marginRight: '5px'
327
+ }
328
+ },
329
+ value: {
330
+ text: 'Rounded',
331
+ style: {
332
+ flex: '1'
333
+ }
334
+ },
335
+ range: null,
336
+ button1: null,
337
+ button2: {}
338
+ }
339
+ }
340
+ ]
341
+ }
342
+ }
343
+ }
344
+
345
+ export default {
346
+ tag: 'aside',
347
+ extend: [Block, Text],
348
+ props: { size: 'Y' },
349
+ style: {
350
+ paddingTop: '10px'
351
+ },
352
+ childExtend: commonComponent,
353
+ ...[
354
+ style,
355
+ spaces,
356
+ border,
357
+ form,
358
+ accessibility
359
+ ]
360
+ }
@@ -0,0 +1,49 @@
1
+ 'use strict'
2
+
3
+ import {
4
+ screenButton,
5
+ activeScreenButton,
6
+ styleKangoroo
7
+ } from './style'
8
+
9
+ import { Button, Icon } from '@symbo.ls/components'
10
+
11
+ export const KangorooButton = {
12
+ style: styleKangoroo,
13
+ tag: 'button',
14
+ icon: { extend: Icon, name: 'sun' },
15
+ text: 'light mode',
16
+ button: {
17
+ icon: { extend: Icon, name: 'moon' },
18
+ text: 'go dark'
19
+ }
20
+ }
21
+
22
+ export const ResponsiveToolBar = {
23
+ tag: 'nav',
24
+
25
+ childExtend: {
26
+ extend: Button,
27
+ style: screenButton,
28
+ define: { active: param => param },
29
+ class: {
30
+ active: (el, s) => el.key === s.previewSize
31
+ ? activeScreenButton
32
+ : {}
33
+ },
34
+ on: {
35
+ click: (ev, el, s) => {
36
+ s.update({
37
+ previewSize: el.key !== s.previewSize ? el.key : 'unset'
38
+ })
39
+ }
40
+ }
41
+ },
42
+ ...[
43
+ { key: 'mobile', icon: 'deviceMobile' },
44
+ { key: 'tabletPortrait', icon: 'deviceTabletPortrait' },
45
+ { key: 'tabletLangdscape', icon: 'deviceTabletLandscape' },
46
+ { key: 'small', icon: 'deviceSmall' },
47
+ { key: 'big', icon: 'deviceBig' }
48
+ ]
49
+ }
@@ -0,0 +1,18 @@
1
+ 'use strict'
2
+
3
+ import { SEQUENCE, TYPOGRAPHY } from '@symbo.ls/scratch'
4
+ import { LIBRARY } from '../../../.symbols'
5
+
6
+ const COMPONENT_ROUTES = {}
7
+ LIBRARY.map(v => (COMPONENT_ROUTES[`/${v.key}`] = v))
8
+
9
+ // const SEQUENCE = [8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 22, 24, 26, 32, 36, 42, 48, 56, 62, 68, 76, 84, 92, 100, 110]
10
+
11
+ const TYPOGRAPHY_SEQUENCE = Object.keys(TYPOGRAPHY.sequence).reverse().map(v => {
12
+ const val = TYPOGRAPHY.sequence[v].val
13
+ return val
14
+ })
15
+
16
+ const SPACING_RATIO = Object.values(SEQUENCE).reverse().map(v => v)
17
+
18
+ export { COMPONENT_ROUTES, TYPOGRAPHY_SEQUENCE, SPACING_RATIO }
@@ -0,0 +1,56 @@
1
+ 'use strict'
2
+
3
+ import { Flex, PropertyList } from '@symbo.ls/components'
4
+
5
+ import { styleArticle } from './style'
6
+
7
+ export const description = {
8
+ props: { padding: '0 0 B 0' },
9
+ caption: {
10
+ props: {
11
+ text: 'Description',
12
+ size: 'Z',
13
+ padding: '0 0 Y2 0'
14
+ }
15
+ },
16
+ p: {
17
+ props: {
18
+ text: 'Kangoroo buttons are button compositions where the original button contain one or more child buttons.'
19
+ },
20
+ style: { margin: 0 }
21
+ }
22
+ }
23
+
24
+ export default {
25
+ tag: 'article',
26
+ style: styleArticle,
27
+ props: { padding: 'B2 0' },
28
+
29
+ description,
30
+
31
+ usage: {
32
+ extend: [Flex],
33
+ props: { gap: 'C1' },
34
+
35
+ table: {
36
+ props: { flex: 1 },
37
+ extend: PropertyList,
38
+ if: ({ state }) => state.props,
39
+
40
+ title: {},
41
+ list: {
42
+ $setCollection: ({ state }) => state.props
43
+ }
44
+ },
45
+
46
+ code: {
47
+ extend: 'Code',
48
+ props: { margin: '0', flex: '0 0 320px' },
49
+ if: ({ state }) => state.code,
50
+ title: {},
51
+ code: {
52
+ text: ({ state }) => state.code
53
+ }
54
+ }
55
+ }
56
+ }
@@ -0,0 +1,74 @@
1
+ 'use strict'
2
+
3
+ import { router, lastLevel } from '@domql/router' // eslint-disable-line no-unused-vars
4
+
5
+ import { ResponsiveToolBar, Flex } from '@symbo.ls/components'
6
+ import { PageExtend } from '../PageExtend'
7
+
8
+ import state from './state'
9
+ import scene from './scene'
10
+ import tools from './tools'
11
+ import description from './description'
12
+
13
+ import { LIBRARY } from '../../../.symbols'
14
+ import { COMPONENT_ROUTES } from './const'
15
+
16
+ const componentState = () => LIBRARY.filter(v => {
17
+ const key = window.location.pathname.split('component/')[1]
18
+ return v.key === key
19
+ })
20
+
21
+ export const Export = {
22
+ key: 'export',
23
+ extend: Flex,
24
+
25
+ props: {
26
+ width: '100%',
27
+ flow: 'column',
28
+ padding: '0 Y2'
29
+ },
30
+
31
+ state: () => ({
32
+ ...componentState()[0],
33
+ ...state
34
+ }),
35
+
36
+ on: {
37
+ init: (el, s) => {
38
+ const route = window.location.pathname
39
+ const routes = route.slice(1).split('/')
40
+
41
+ const content = COMPONENT_ROUTES[`/${routes[1]}`]
42
+ if (!content) return router(el.__root, '/components')
43
+ }
44
+ },
45
+
46
+ main: {
47
+ style: { maxWidth: 'none' },
48
+ scene
49
+ },
50
+
51
+ cnt: {
52
+ extend: [PageExtend],
53
+
54
+ props: {
55
+ padding: 'Z2 C1 A',
56
+ flex: '1'
57
+ },
58
+
59
+ tools: {
60
+ props: {
61
+ padding: 'Z2 0 0 0',
62
+ flexAlign: 'center space-between'
63
+ },
64
+
65
+ tools,
66
+
67
+ responsive: { extend: ResponsiveToolBar }
68
+ },
69
+
70
+ description
71
+ }
72
+
73
+ // footer: { extend: Footer }
74
+ }
@@ -0,0 +1,62 @@
1
+ 'use strict'
2
+
3
+ import { BREAKPOINTS } from '@symbo.ls/scratch'
4
+ import { Scene } from '@symbo.ls/components'
5
+
6
+ export default {
7
+ extend: Scene,
8
+
9
+ props: (el, s) => {
10
+ const previewSize = BREAKPOINTS[s.previewSize]
11
+ return {
12
+ width: '100%',
13
+ maxWidth: previewSize ? previewSize + 'px' : '100%',
14
+ margin: '- auto'
15
+ }
16
+ },
17
+
18
+ scene: {
19
+ props: {
20
+ padding: 'B 0',
21
+ maxHeight: '40em',
22
+ minHeight: '65vh'
23
+ },
24
+
25
+ class: {
26
+ z: (el, s) => ({
27
+ '> *': {
28
+ transform: `scale(${parseFloat(s.zoomLevel, 2)})`
29
+ }
30
+ })
31
+ },
32
+
33
+ content: {
34
+ props: {
35
+ transition: 'all, B, cubic-bezier(.29,.67,.51,.97)',
36
+ style: {
37
+ '*': {
38
+ transition: 'all 255ms cubic-bezier(.29,.67,.51,.97)'
39
+ }
40
+ }
41
+ },
42
+ comp: (el, s) => {
43
+ console.warn(s)
44
+ return {
45
+ extend: [s.component],
46
+ props: {
47
+ }
48
+ }
49
+ },
50
+
51
+ on: {
52
+ initUpdate: (el, s) => {
53
+ el.comp.setProps({
54
+ base: s.base,
55
+ fontSize: s.base + 'px',
56
+ spacingRatio: s.ratio
57
+ }, { preventUpdate: true })
58
+ }
59
+ }
60
+ }
61
+ }
62
+ }
@@ -0,0 +1,21 @@
1
+ 'use strict'
2
+
3
+ import { TYPOGRAPHY } from '@symbo.ls/scratch'
4
+
5
+ export default {
6
+ descriptionTheme: 'dark',
7
+ previewSize: 'unset',
8
+ sceneTheme: 'dark',
9
+ theme: '',
10
+ zoomLevel: 1,
11
+ currentFontSizeIndex: 3,
12
+
13
+ base: TYPOGRAPHY.base,
14
+ ratio: TYPOGRAPHY.ratio,
15
+ range: [-1, +4],
16
+ scales: {},
17
+ sequence: {},
18
+ vars: {},
19
+ type: 'type-scale',
20
+ sampleText: 'Today is a big day for our tribe. The year ends.'
21
+ }
@@ -0,0 +1,21 @@
1
+ 'use strict'
2
+
3
+ export const styleArticle = {
4
+ caption: {
5
+ // textTransform: 'capitalize',
6
+ opacity: '.35'
7
+ },
8
+
9
+ p: {
10
+ maxWidth: `${470 / 14}em`,
11
+ opacity: '.75',
12
+ lineHeight: '20px'
13
+ },
14
+
15
+ code: {
16
+ overflow: 'hidden'
17
+ }
18
+ }
19
+
20
+ export const styleHeader = {
21
+ }
@@ -0,0 +1,14 @@
1
+ 'use strict'
2
+
3
+ import { Flex, SequenceSliders } from '@symbo.ls/components'
4
+
5
+ export default {
6
+ extend: [Flex],
7
+ props: { gap: 'B1' },
8
+ // theme: { extend: ThemeSwitcher },
9
+
10
+ sliders: {
11
+ extend: SequenceSliders,
12
+ childExtend: { title: null }
13
+ }
14
+ }