@popsure/dirty-swan 0.26.10 → 0.26.11

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 (230) hide show
  1. package/package.json +2 -1
  2. package/src/App.tsx +50 -0
  3. package/src/bin/index.ts +71 -0
  4. package/src/bin/tsconfig.json +13 -0
  5. package/src/bin/util/index.test.ts +85 -0
  6. package/src/bin/util/index.ts +132 -0
  7. package/src/bin/util/test/data.json +13 -0
  8. package/src/colors.scss +1 -0
  9. package/src/font-weight.scss +1 -0
  10. package/src/grid.scss +1 -0
  11. package/src/index.tsx +37 -0
  12. package/src/intro.stories.mdx +41 -0
  13. package/src/lib/components/autocompleteAddress/demo.tsx +38 -0
  14. package/src/lib/components/autocompleteAddress/index.stories.mdx +44 -0
  15. package/src/lib/components/autocompleteAddress/index.tsx +316 -0
  16. package/src/lib/components/autocompleteAddress/mapStyle.ts +187 -0
  17. package/src/lib/components/autocompleteAddress/style.module.scss +82 -0
  18. package/src/lib/components/autocompleteAddress/util/index.test.ts +51 -0
  19. package/src/lib/components/autocompleteAddress/util/index.ts +55 -0
  20. package/src/lib/components/button/icons/index.ts +14 -0
  21. package/src/lib/components/button/icons/send-purple.svg +4 -0
  22. package/src/lib/components/button/icons/send-white.svg +4 -0
  23. package/src/lib/components/button/index.stories.mdx +121 -0
  24. package/src/lib/components/button/index.tsx +64 -0
  25. package/src/lib/components/button/styles.module.scss +5 -0
  26. package/src/lib/components/cards/a.stories.mdx +44 -0
  27. package/src/lib/components/cards/cardButton/index.stories.mdx +47 -0
  28. package/src/lib/components/cards/cardButton/index.tsx +61 -0
  29. package/src/lib/components/cards/cardButton/style.module.scss +33 -0
  30. package/src/lib/components/cards/cardWithLeftIcon/index.stories.mdx +103 -0
  31. package/src/lib/components/cards/cardWithLeftIcon/index.tsx +87 -0
  32. package/src/lib/components/cards/cardWithLeftIcon/style.module.scss +23 -0
  33. package/src/lib/components/cards/cardWithTopIcon/index.stories.mdx +105 -0
  34. package/src/lib/components/cards/cardWithTopIcon/index.tsx +60 -0
  35. package/src/lib/components/cards/cardWithTopIcon/style.module.scss +10 -0
  36. package/src/lib/components/cards/cardWithTopLeftIcon/index.stories.mdx +101 -0
  37. package/src/lib/components/cards/cardWithTopLeftIcon/index.tsx +72 -0
  38. package/src/lib/components/cards/cardWithTopLeftIcon/style.module.scss +21 -0
  39. package/src/lib/components/cards/icons/arrow-right.svg +4 -0
  40. package/src/lib/components/cards/icons/chevron-right.svg +3 -0
  41. package/src/lib/components/cards/icons/feather-logo.svg +10 -0
  42. package/src/lib/components/cards/icons/index.ts +36 -0
  43. package/src/lib/components/cards/icons/info.svg +12 -0
  44. package/src/lib/components/cards/index.test.ts +37 -0
  45. package/src/lib/components/cards/index.tsx +57 -0
  46. package/src/lib/components/cards/infoCard/index.stories.mdx +61 -0
  47. package/src/lib/components/cards/infoCard/index.tsx +47 -0
  48. package/src/lib/components/cards/infoCard/style.module.scss +53 -0
  49. package/src/lib/components/chip/icons/remove-button-highlighted.svg +4 -0
  50. package/src/lib/components/chip/icons/remove-button.svg +4 -0
  51. package/src/lib/components/chip/index.stories.mdx +101 -0
  52. package/src/lib/components/chip/index.tsx +38 -0
  53. package/src/lib/components/chip/style.module.scss +54 -0
  54. package/src/lib/components/comparisonTable/components/Chevron.tsx +19 -0
  55. package/src/lib/components/comparisonTable/components/Row/index.tsx +68 -0
  56. package/src/lib/components/comparisonTable/components/Row/style.module.scss +114 -0
  57. package/src/lib/components/comparisonTable/components/TableArrows/Arrow.tsx +19 -0
  58. package/src/lib/components/comparisonTable/components/TableArrows/index.tsx +52 -0
  59. package/src/lib/components/comparisonTable/components/TableArrows/style.module.scss +53 -0
  60. package/src/lib/components/comparisonTable/components/TableInfoButton/index.tsx +37 -0
  61. package/src/lib/components/comparisonTable/components/TableInfoButton/style.module.scss +30 -0
  62. package/src/lib/components/comparisonTable/components/TableRating/StarIcon.tsx +13 -0
  63. package/src/lib/components/comparisonTable/components/TableRating/ZapIcon.tsx +17 -0
  64. package/src/lib/components/comparisonTable/components/TableRating/index.tsx +45 -0
  65. package/src/lib/components/comparisonTable/components/TableRating/style.module.scss +13 -0
  66. package/src/lib/components/comparisonTable/components/TableRowHeader/index.tsx +35 -0
  67. package/src/lib/components/comparisonTable/components/TableRowHeader/style.module.scss +3 -0
  68. package/src/lib/components/comparisonTable/components/TableTrueFalse.tsx +40 -0
  69. package/src/lib/components/comparisonTable/hooks/useActiveTableArrows.ts +63 -0
  70. package/src/lib/components/comparisonTable/index.stories.mdx +254 -0
  71. package/src/lib/components/comparisonTable/index.tsx +211 -0
  72. package/src/lib/components/comparisonTable/style.module.scss +104 -0
  73. package/src/lib/components/dateSelector/datepicker.scss +406 -0
  74. package/src/lib/components/dateSelector/icons/calendar.svg +6 -0
  75. package/src/lib/components/dateSelector/icons/chevron-left.svg +3 -0
  76. package/src/lib/components/dateSelector/icons/chevron-right.svg +3 -0
  77. package/src/lib/components/dateSelector/index.stories.mdx +62 -0
  78. package/src/lib/components/dateSelector/index.test.ts +33 -0
  79. package/src/lib/components/dateSelector/index.tsx +247 -0
  80. package/src/lib/components/dateSelector/style.module.scss +77 -0
  81. package/src/lib/components/downloadButton/icons/check.svg +3 -0
  82. package/src/lib/components/downloadButton/icons/download.svg +5 -0
  83. package/src/lib/components/downloadButton/index.stories.mdx +59 -0
  84. package/src/lib/components/downloadButton/index.tsx +67 -0
  85. package/src/lib/components/downloadButton/style.module.scss +19 -0
  86. package/src/lib/components/downloadRing/icons/check-outside-circle.tsx +26 -0
  87. package/src/lib/components/downloadRing/icons/download-cloud.tsx +18 -0
  88. package/src/lib/components/downloadRing/icons/style.module.scss +7 -0
  89. package/src/lib/components/downloadRing/index.stories.mdx +35 -0
  90. package/src/lib/components/downloadRing/index.tsx +79 -0
  91. package/src/lib/components/downloadRing/style.module.scss +66 -0
  92. package/src/lib/components/dropzone/images/error.tsx +18 -0
  93. package/src/lib/components/dropzone/images/file.tsx +26 -0
  94. package/src/lib/components/dropzone/images/style.module.scss +7 -0
  95. package/src/lib/components/dropzone/images/upload-complete.tsx +24 -0
  96. package/src/lib/components/dropzone/images/upload.tsx +18 -0
  97. package/src/lib/components/dropzone/index.stories.mdx +44 -0
  98. package/src/lib/components/dropzone/index.tsx +152 -0
  99. package/src/lib/components/dropzone/style.module.scss +90 -0
  100. package/src/lib/components/input/a.stories.mdx +28 -0
  101. package/src/lib/components/input/autoSuggestInput/index.stories.mdx +137 -0
  102. package/src/lib/components/input/autoSuggestInput/index.tsx +81 -0
  103. package/src/lib/components/input/autoSuggestInput/style.module.scss +71 -0
  104. package/src/lib/components/input/autoSuggestMultiSelect/index.stories.mdx +115 -0
  105. package/src/lib/components/input/autoSuggestMultiSelect/index.tsx +75 -0
  106. package/src/lib/components/input/autoSuggestMultiSelect/style.module.scss +4 -0
  107. package/src/lib/components/input/currency/format/index.test.ts +49 -0
  108. package/src/lib/components/input/currency/format/index.ts +15 -0
  109. package/src/lib/components/input/currency/index.stories.mdx +25 -0
  110. package/src/lib/components/input/currency/index.test.tsx +56 -0
  111. package/src/lib/components/input/currency/index.tsx +53 -0
  112. package/src/lib/components/input/iban/formatIban/index.test.ts +11 -0
  113. package/src/lib/components/input/iban/formatIban/index.ts +22 -0
  114. package/src/lib/components/input/iban/index.stories.mdx +21 -0
  115. package/src/lib/components/input/iban/index.tsx +20 -0
  116. package/src/lib/components/input/index.stories.mdx +62 -0
  117. package/src/lib/components/input/index.tsx +51 -0
  118. package/src/lib/components/input/style.module.scss +94 -0
  119. package/src/lib/components/modal/bottomModal/img/close.svg +4 -0
  120. package/src/lib/components/modal/bottomModal/index.tsx +68 -0
  121. package/src/lib/components/modal/bottomModal/style.module.scss +104 -0
  122. package/src/lib/components/modal/bottomOrRegularModal/index.tsx +43 -0
  123. package/src/lib/components/modal/bottomOrRegularModal/style.module.scss +16 -0
  124. package/src/lib/components/modal/hooks/useOnClose.ts +51 -0
  125. package/src/lib/components/modal/index.stories.mdx +316 -0
  126. package/src/lib/components/modal/index.ts +14 -0
  127. package/src/lib/components/modal/regularModal/img/close.svg +4 -0
  128. package/src/lib/components/modal/regularModal/index.tsx +55 -0
  129. package/src/lib/components/modal/regularModal/style.module.scss +106 -0
  130. package/src/lib/components/multiDropzone/UploadFileCell/index.tsx +138 -0
  131. package/src/lib/components/multiDropzone/UploadFileCell/style.module.scss +101 -0
  132. package/src/lib/components/multiDropzone/icons/bmp-complete.svg +10 -0
  133. package/src/lib/components/multiDropzone/icons/bmp.svg +10 -0
  134. package/src/lib/components/multiDropzone/icons/doc-complete.svg +11 -0
  135. package/src/lib/components/multiDropzone/icons/doc.svg +11 -0
  136. package/src/lib/components/multiDropzone/icons/docx-complete.svg +12 -0
  137. package/src/lib/components/multiDropzone/icons/docx.svg +12 -0
  138. package/src/lib/components/multiDropzone/icons/eye.svg +4 -0
  139. package/src/lib/components/multiDropzone/icons/generic-complete.svg +4 -0
  140. package/src/lib/components/multiDropzone/icons/generic-error.svg +7 -0
  141. package/src/lib/components/multiDropzone/icons/generic.svg +4 -0
  142. package/src/lib/components/multiDropzone/icons/heic-complete.svg +11 -0
  143. package/src/lib/components/multiDropzone/icons/heic.svg +11 -0
  144. package/src/lib/components/multiDropzone/icons/index.ts +51 -0
  145. package/src/lib/components/multiDropzone/icons/jpeg-complete.svg +11 -0
  146. package/src/lib/components/multiDropzone/icons/jpeg.svg +11 -0
  147. package/src/lib/components/multiDropzone/icons/jpg-complete.svg +10 -0
  148. package/src/lib/components/multiDropzone/icons/jpg.svg +10 -0
  149. package/src/lib/components/multiDropzone/icons/pdf-complete.svg +8 -0
  150. package/src/lib/components/multiDropzone/icons/pdf.svg +8 -0
  151. package/src/lib/components/multiDropzone/icons/png-complete.svg +10 -0
  152. package/src/lib/components/multiDropzone/icons/png.svg +10 -0
  153. package/src/lib/components/multiDropzone/icons/trash.svg +6 -0
  154. package/src/lib/components/multiDropzone/icons/upload.svg +5 -0
  155. package/src/lib/components/multiDropzone/index.stories.mdx +91 -0
  156. package/src/lib/components/multiDropzone/index.tsx +99 -0
  157. package/src/lib/components/multiDropzone/style.module.scss +32 -0
  158. package/src/lib/components/segmentedControl/index.stories.mdx +47 -0
  159. package/src/lib/components/segmentedControl/index.tsx +105 -0
  160. package/src/lib/components/segmentedControl/style.module.scss +36 -0
  161. package/src/lib/components/signaturePad/img/reset.svg +4 -0
  162. package/src/lib/components/signaturePad/img/sign.svg +3 -0
  163. package/src/lib/components/signaturePad/index.stories.mdx +17 -0
  164. package/src/lib/components/signaturePad/index.tsx +96 -0
  165. package/src/lib/components/signaturePad/style.module.scss +90 -0
  166. package/src/lib/index.tsx +71 -0
  167. package/src/lib/models/autoSuggestInput/index.ts +4 -0
  168. package/src/lib/models/download.ts +1 -0
  169. package/src/lib/models/downloadRing/index.ts +6 -0
  170. package/src/lib/scss/index.scss +22 -0
  171. package/src/lib/scss/private/_reset.scss +149 -0
  172. package/src/lib/scss/private/base/_colors.scss +19 -0
  173. package/src/lib/scss/private/base/_cursors.scss +31 -0
  174. package/src/lib/scss/private/base/_display.scss +35 -0
  175. package/src/lib/scss/private/base/_grid.scss +52 -0
  176. package/src/lib/scss/private/base/_index.scss +9 -0
  177. package/src/lib/scss/private/base/_shadows.scss +2 -0
  178. package/src/lib/scss/private/base/_spacing.scss +89 -0
  179. package/src/lib/scss/private/base/_typography.scss +128 -0
  180. package/src/lib/scss/private/base/_width_and_height.scss +25 -0
  181. package/src/lib/scss/private/base/cursors.stories.mdx +18 -0
  182. package/src/lib/scss/private/base/demo.tsx +119 -0
  183. package/src/lib/scss/private/base/display.stories.mdx +19 -0
  184. package/src/lib/scss/private/base/flex/_flex.scss +63 -0
  185. package/src/lib/scss/private/base/flex/flex.stories.mdx +139 -0
  186. package/src/lib/scss/private/base/flex/style.module.scss +24 -0
  187. package/src/lib/scss/private/base/spacing.stories.mdx +173 -0
  188. package/src/lib/scss/private/base/style.module.scss +42 -0
  189. package/src/lib/scss/private/base/typography.stories.mdx +71 -0
  190. package/src/lib/scss/private/base/width_and_height.stories.mdx +172 -0
  191. package/src/lib/scss/private/components/_badge.scss +41 -0
  192. package/src/lib/scss/private/components/_buttons.scss +193 -0
  193. package/src/lib/scss/private/components/_cards.scss +32 -0
  194. package/src/lib/scss/private/components/_index.scss +6 -0
  195. package/src/lib/scss/private/components/_input.scss +241 -0
  196. package/src/lib/scss/private/components/_notices.scss +39 -0
  197. package/src/lib/scss/private/components/_spinner.scss +60 -0
  198. package/src/lib/scss/private/components/assets/checkmark.svg +3 -0
  199. package/src/lib/scss/private/components/assets/icon-form-dropdown.svg +3 -0
  200. package/src/lib/scss/private/components/badge.stories.mdx +37 -0
  201. package/src/lib/scss/private/components/button.stories.mdx +107 -0
  202. package/src/lib/scss/private/components/cards.stories.mdx +35 -0
  203. package/src/lib/scss/private/components/checkbox.stories.mdx +47 -0
  204. package/src/lib/scss/private/components/input.stories.mdx +33 -0
  205. package/src/lib/scss/private/components/notices.stories.mdx +37 -0
  206. package/src/lib/scss/private/components/radio.stories.mdx +47 -0
  207. package/src/lib/scss/private/components/select.stories.mdx +17 -0
  208. package/src/lib/scss/private/components/spinner.stories.mdx +25 -0
  209. package/src/lib/scss/public/colors/_index.scss +2 -0
  210. package/src/lib/scss/public/colors/default.scss +125 -0
  211. package/src/lib/scss/public/colors/overrides.scss +0 -0
  212. package/src/lib/scss/public/colors.stories.mdx +27 -0
  213. package/src/lib/scss/public/demo.tsx +285 -0
  214. package/src/lib/scss/public/font/_index.scss +2 -0
  215. package/src/lib/scss/public/font/default.scss +3 -0
  216. package/src/lib/scss/public/font/overrides.scss +0 -0
  217. package/src/lib/scss/public/font-weight.scss +9 -0
  218. package/src/lib/scss/public/font-weight.stories.mdx +32 -0
  219. package/src/lib/scss/public/grid.scss +21 -0
  220. package/src/lib/scss/public/grid.stories.mdx +41 -0
  221. package/src/lib/scss/third-party/_google_places.scss +62 -0
  222. package/src/lib/scss/third-party/_index.scss +1 -0
  223. package/src/lib/scss/utils/_index.scss +3 -0
  224. package/src/lib/util/calendarDate/index.test.ts +32 -0
  225. package/src/lib/util/calendarDate/index.ts +30 -0
  226. package/src/lib/util/zeroFill.test.ts +15 -0
  227. package/src/lib/util/zeroFill.ts +7 -0
  228. package/src/react-app-env.d.ts +1 -0
  229. package/src/setupTests.js +8 -0
  230. package/src/theme.stories.mdx +54 -0
@@ -0,0 +1,119 @@
1
+ import React from 'react';
2
+
3
+ import styles from './style.module.scss';
4
+
5
+ export const Typography = () => (
6
+ <>
7
+ <h1 className="p-h1--xl">The quick brown fox jumps over the lazy dog</h1>
8
+ <h1 className="p-h1">The quick brown fox jumps over the lazy dog</h1>
9
+ <h2 className="p-h2">The quick brown fox jumps over the lazy dog</h2>
10
+ <h3 className="p-h3">The quick brown fox jumps over the lazy dog</h3>
11
+ <h4 className="p-h4">The quick brown fox jumps over the lazy dog</h4>
12
+ <p className="p-p">The quick brown fox jumps over the lazy dog</p>
13
+ <p className="p-p--small">The quick brown fox jumps over the lazy dog</p>
14
+ </>
15
+ );
16
+
17
+ export const StaticWidthClasses = () => (
18
+ <div className={styles['width-container']}>
19
+ <div className="ws1">ws1</div>
20
+ <div className="ws2">ws2</div>
21
+ <div className="ws3">ws3</div>
22
+ <div className="ws4">ws4</div>
23
+ <div className="ws5">ws5</div>
24
+ <div className="ws6">ws6</div>
25
+ <div className="ws7">ws7</div>
26
+ <div className="ws8">ws8</div>
27
+ <div className="ws9">ws9</div>
28
+ <div className="ws10">ws10</div>
29
+ <div className="ws11">ws11</div>
30
+ <div className="ws12">ws12</div>
31
+ </div>
32
+ );
33
+
34
+ export const MinWidthClasses = () => (
35
+ <div className={styles['min-width-container']}>
36
+ <div>
37
+ <div className="wmn1">wmn1</div>
38
+ <div />
39
+ </div>
40
+ <div>
41
+ <div className="wmn2">wmn2</div>
42
+ <div />
43
+ </div>
44
+ <div>
45
+ <div className="wmn3">wmn3</div>
46
+ <div />
47
+ </div>
48
+ <div>
49
+ <div className="wmn4">wmn4</div>
50
+ <div />
51
+ </div>
52
+ <div>
53
+ <div className="wmn5">wmn5</div>
54
+ <div />
55
+ </div>
56
+ <div>
57
+ <div className="wmn6">wmn6</div>
58
+ <div />
59
+ </div>
60
+ <div>
61
+ <div className="wmn7">wmn7</div>
62
+ <div />
63
+ </div>
64
+ <div>
65
+ <div className="wmn8">wmn8</div>
66
+ <div />
67
+ </div>
68
+ <div>
69
+ <div className="wmn9">wmn9</div>
70
+ <div />
71
+ </div>
72
+ <div>
73
+ <div className="wmn10">wmn10</div>
74
+ <div />
75
+ </div>
76
+ <div>
77
+ <div className="wmn11">wmn11</div>
78
+ <div />
79
+ </div>
80
+ <div>
81
+ <div className="wmn12">wmn12</div>
82
+ <div />
83
+ </div>
84
+ </div>
85
+ );
86
+
87
+ export const MaxWidthClasses = () => (
88
+ <div className={styles['width-container']}>
89
+ <div className="wmx1">wmx1</div>
90
+ <div className="wmx2">wmx2</div>
91
+ <div className="wmx3">wmx3</div>
92
+ <div className="wmx4">wmx4</div>
93
+ <div className="wmx5">wmx5</div>
94
+ <div className="wmx6">wmx6</div>
95
+ <div className="wmx7">wmx7</div>
96
+ <div className="wmx8">wmx8</div>
97
+ <div className="wmx9">wmx9</div>
98
+ <div className="wmx10">wmx10</div>
99
+ <div className="wmx11">wmx11</div>
100
+ <div className="wmx12">wmx12</div>
101
+ </div>
102
+ );
103
+
104
+ export const FuildWidthClasses = () => (
105
+ <div className={styles['width-container']}>
106
+ <div className="w-auto">w-auto</div>
107
+ <div className="w0">w0</div>
108
+ <div className="w10">w10</div>
109
+ <div className="w20">w20</div>
110
+ <div className="w30">w30</div>
111
+ <div className="w40">w40</div>
112
+ <div className="w50">w50</div>
113
+ <div className="w60">w60</div>
114
+ <div className="w70">w70</div>
115
+ <div className="w80">w80</div>
116
+ <div className="w90">w90</div>
117
+ <div className="w100">w100</div>
118
+ </div>
119
+ );
@@ -0,0 +1,19 @@
1
+ <Meta title="CSS/Base/Display" />
2
+
3
+ # Display
4
+
5
+ Dirty swan provides atomic display classes that allow you to change an element’s display quickly.
6
+
7
+ ## Classes
8
+
9
+ | Class | Output |
10
+ | ----------------- | ------------------------ |
11
+ | `.d-block` | `display: block;` |
12
+ | `.d-inline` | `display: inline;` |
13
+ | `.d-inline-block` | `display: inline-block;` |
14
+ | `.d-flex` | `display: flex;` |
15
+ | `.d-inline-flex` | `display: inline-flex;` |
16
+ | `.d-table` | `display: table;` |
17
+ | `.d-table-cell` | `display: table-cell;` |
18
+ | `.d-none` | `display: none;` |
19
+ | `.d-grid` | `display: grid;` |
@@ -0,0 +1,63 @@
1
+ @use '../../../private/base/grid';
2
+
3
+ /** Shared values across align and justify properties */
4
+ $common-values: (
5
+ 'start': flex-start,
6
+ 'end': flex-end,
7
+ 'center': center,
8
+ );
9
+
10
+ $align-values: map-merge(
11
+ $common-values,
12
+ (
13
+ 'stretch': stretch,
14
+ 'baseline': baseline,
15
+ )
16
+ );
17
+
18
+ $jutify-values: map-merge(
19
+ $common-values,
20
+ (
21
+ 'between': space-between,
22
+ 'around': space-around,
23
+ 'evenly': space-evenly,
24
+ )
25
+ );
26
+
27
+ // Align items
28
+ @each $name, $value in $align-values {
29
+ .ai-#{$name} {
30
+ align-items: $value;
31
+ }
32
+ }
33
+
34
+ // Justify content
35
+ @each $name, $value in $jutify-values {
36
+ .jc-#{$name} {
37
+ justify-content: $value;
38
+ }
39
+ }
40
+
41
+ .fd-row {
42
+ flex-direction: row !important;
43
+ }
44
+
45
+ .fd-row-reverse {
46
+ flex-direction: row-reverse !important;
47
+ }
48
+
49
+ .fd-column {
50
+ flex-direction: column !important;
51
+ }
52
+
53
+ .fd-column-reverse {
54
+ flex-direction: column-reverse !important;
55
+ }
56
+
57
+ .f-wrap {
58
+ flex-wrap: wrap;
59
+ }
60
+
61
+ .f-nowrap {
62
+ flex-wrap: nowrap;
63
+ }
@@ -0,0 +1,139 @@
1
+ import style from './style.module.scss';
2
+
3
+ <Meta title="CSS/Base/Flex" />
4
+
5
+ # Flex
6
+
7
+ Dirty swan provides the most common alignment options using Flexbox
8
+
9
+ ## Adding flex to a layout
10
+
11
+ | Class | Output |
12
+ | ---------------- | ----------------------- |
13
+ | `.d-flex` | `display: flex;` |
14
+ | `.d-inline-flex` | `display: inline-flex;` |
15
+
16
+ ## Flex wrap
17
+
18
+ | Class | Output |
19
+ | ----------- | -------------------- |
20
+ | `.f-wrap` | `flex-wrap: wrap;` |
21
+ | `.f-nowrap` | `flex-wrap: nowrap;` |
22
+
23
+ ## Flex direction
24
+
25
+ | Class | Output |
26
+ | -------------------- | -------------------------------- |
27
+ | `.fd-row` | `flex-direction: row` |
28
+ | `.fd-row-reverse` | `flex-direction: row-reverse` |
29
+ | `.fd-column` | `flex-direction:column ` |
30
+ | `.fd-column-reverse` | `flex-direction: column-reverse` |
31
+
32
+ export const RenderFdExample = () => {
33
+ const values = ['row', 'row-reverse', 'column', 'column-reverse'];
34
+ return (
35
+ <div>
36
+ {values.map((value) => (
37
+ <div key={value}>
38
+ <p className="p-p fw-bold">.fd-{value}</p>
39
+ <div
40
+ className={`d-flex bg-grey-500 w100 fd-${value} p16 ${style.container}`}
41
+ >
42
+ <div
43
+ className={`bg-grey-100 p16 m8 d-flex ai-center jc-center ${style.item}`}
44
+ >
45
+ 1
46
+ </div>
47
+ <div
48
+ className={`bg-grey-100 p16 m8 d-flex ai-center jc-center ${style.item}`}
49
+ >
50
+ 2
51
+ </div>
52
+ <div
53
+ className={`bg-grey-100 p16 m8 d-flex ai-center jc-center ${style.item}`}
54
+ >
55
+ 3
56
+ </div>
57
+ </div>
58
+ </div>
59
+ ))}
60
+ </div>
61
+ );
62
+ };
63
+
64
+ <RenderFdExample />
65
+
66
+ ## Align items
67
+
68
+ | Class | Output |
69
+ | -------------- | ------------------------- |
70
+ | `.ai-start` | `align-items: flex-start` |
71
+ | `.ai-end` | `align-items: flex-end` |
72
+ | `.ai-center` | `align-items: center` |
73
+ | `.ai-stretch` | `align-items: stretch` |
74
+ | `.ai-baseline` | `align-items: baseline` |
75
+
76
+ export const RenderAiExample = () => {
77
+ const values = ['start', 'end', 'center', 'stretch', 'baseline'];
78
+ return (
79
+ <div>
80
+ {values.map((value) => (
81
+ <div key={value}>
82
+ <p className="p-p fw-bold">.ai-{value}</p>
83
+ <div
84
+ className={`d-flex bg-grey-500 w100 ai-${value} p16 ${style.container} ${style['ai-container']}`}
85
+ >
86
+ <div className={`bg-grey-100 p16 m8 ${style.item}`}>Item</div>
87
+ <div
88
+ className={`bg-grey-100 p16 m8 d-flex ai-center ${style.item} ${style['ai-item-2']}`}
89
+ >
90
+ Item
91
+ </div>
92
+ <div
93
+ className={`bg-grey-100 p16 m8 ${style.item} ${
94
+ style[['ai-item-3']]
95
+ }`}
96
+ >
97
+ Item
98
+ </div>
99
+ </div>
100
+ </div>
101
+ ))}
102
+ </div>
103
+ );
104
+ };
105
+
106
+ <RenderAiExample />
107
+
108
+ ## Justify content
109
+
110
+ | Class | Output |
111
+ | ------------- | -------------------------------- |
112
+ | `.jc-start` | `justify-content: flex-start` |
113
+ | `.jc-end` | `justify-content: flex-end` |
114
+ | `.jc-center` | `justify-content: center` |
115
+ | `.jc-between` | `justify-content: space-between` |
116
+ | `.jc-around` | `justify-content: space-around` |
117
+ | `.jc-evenly` | `justify-content: space-evenly` |
118
+
119
+ export const RenderJcExample = () => {
120
+ const values = ['start', 'end', 'center', 'between', 'around', 'evenly'];
121
+ return (
122
+ <div>
123
+ {values.map((value) => (
124
+ <div key={value}>
125
+ <p className="p-p fw-bold">.jc-{value}</p>
126
+ <div
127
+ className={`d-flex bg-grey-500 w100 jc-${value} p16 ${style.container}`}
128
+ >
129
+ <div className={`bg-grey-100 p16 m8 ${style.item}`}>Item</div>
130
+ <div className={`bg-grey-100 p16 m8 ${style.item}`}>Item</div>
131
+ <div className={`bg-grey-100 p16 m8 ${style.item}`}>Item</div>
132
+ </div>
133
+ </div>
134
+ ))}
135
+ </div>
136
+ );
137
+ };
138
+
139
+ <RenderJcExample />
@@ -0,0 +1,24 @@
1
+ .container {
2
+ margin-bottom: 24px;
3
+ background-color: #f8f8f8 !important;
4
+ border: 1px solid #d2d2d7;
5
+ border-radius: 8px;
6
+ }
7
+
8
+ .ai-container {
9
+ height: 200px;
10
+ }
11
+
12
+ .item {
13
+ margin: 8px !important;
14
+ background-color: white !important;
15
+ border: 1px solid #d2d2d7;
16
+ }
17
+
18
+ .ai-item-2 {
19
+ min-height: 100px;
20
+ }
21
+
22
+ .ai-item-3 {
23
+ min-height: 80px;
24
+ }
@@ -0,0 +1,173 @@
1
+ <Meta title="CSS/Base/Spacing" />
2
+
3
+ # Spacing
4
+
5
+ Dirty swan provides way to express spacing
6
+
7
+ ## Margin / Padding / Gaps
8
+
9
+ You can use the shorthand class name to define the four margin properties:
10
+
11
+ `margin-top` with `.mt{x}`
12
+
13
+ `margin-bottom` with `.mb{x}`
14
+
15
+ `margin-right` with `.mr{x}`
16
+
17
+ `margin-left` with `.ml{x}`
18
+
19
+ The same applies for padding:
20
+
21
+ `padding-top` with `.pt{x}`
22
+
23
+ `padding-bottom` with `.pb{x}`
24
+
25
+ `padding-right` with `.pr{x}`
26
+
27
+ `padding-left` with `.pl{x}`
28
+
29
+ Gaps can be expressed via 3 different classes, depending on your use case:
30
+
31
+ `gap` with `.gap{x}`
32
+
33
+ `column-gap` with `.c-gap{x}`
34
+
35
+ `row-gap` with `.r-gap{x}`
36
+
37
+ ### Top margin / padding
38
+
39
+ | Class | Output |
40
+ | ------- | ---------------- |
41
+ | `.mt0` | `margin-top: 0` |
42
+ | `.mt8` | `margin-top: 8` |
43
+ | `.mt16` | `margin-top: 16` |
44
+ | `.mt24` | `margin-top: 24` |
45
+ | `.mt32` | `margin-top: 32` |
46
+ | `.mt40` | `margin-top: 40` |
47
+ | `.mt48` | `margin-top: 48` |
48
+ | `.mt56` | `margin-top: 56` |
49
+ | `.mt64` | `margin-top: 64` |
50
+ | `.mt72` | `margin-top: 72` |
51
+ | `.mt80` | `margin-top: 80` |
52
+ | `.mt88` | `margin-top: 88` |
53
+ | `.mt96` | `margin-top: 96` |
54
+
55
+ ### Bottom margin / padding
56
+
57
+ | Class | Output |
58
+ | ------- | ------------------- |
59
+ | `.mb0` | `margin-bottom: 0` |
60
+ | `.mb8` | `margin-bottom: 8` |
61
+ | `.mb16` | `margin-bottom: 16` |
62
+ | `.mb24` | `margin-bottom: 24` |
63
+ | `.mb32` | `margin-bottom: 32` |
64
+ | `.mb40` | `margin-bottom: 40` |
65
+ | `.mb48` | `margin-bottom: 48` |
66
+ | `.mb56` | `margin-bottom: 56` |
67
+ | `.mb64` | `margin-bottom: 64` |
68
+ | `.mb72` | `margin-bottom: 72` |
69
+ | `.mb80` | `margin-bottom: 80` |
70
+ | `.mb88` | `margin-bottom: 88` |
71
+ | `.mb96` | `margin-bottom: 96` |
72
+
73
+ ### Right margin / padding
74
+
75
+ | Class | Output |
76
+ | ------- | ------------------ |
77
+ | `.mr0` | `margin-right: 0` |
78
+ | `.mr8` | `margin-right: 8` |
79
+ | `.mr16` | `margin-right: 16` |
80
+ | `.mr24` | `margin-right: 24` |
81
+ | `.mr32` | `margin-right: 32` |
82
+ | `.mr40` | `margin-right: 40` |
83
+ | `.mr48` | `margin-right: 48` |
84
+ | `.mr56` | `margin-right: 56` |
85
+ | `.mr64` | `margin-right: 64` |
86
+ | `.mr72` | `margin-right: 72` |
87
+ | `.mr80` | `margin-right: 80` |
88
+ | `.mr88` | `margin-right: 88` |
89
+ | `.mr96` | `margin-right: 96` |
90
+
91
+ ### Left margin / padding
92
+
93
+ | Class | Output |
94
+ | ------- | ----------------- |
95
+ | `.ml0` | `margin-left: 0` |
96
+ | `.ml8` | `margin-left: 8` |
97
+ | `.ml16` | `margin-left: 16` |
98
+ | `.ml24` | `margin-left: 24` |
99
+ | `.ml32` | `margin-left: 32` |
100
+ | `.ml40` | `margin-left: 40` |
101
+ | `.ml48` | `margin-left: 48` |
102
+ | `.ml56` | `margin-left: 56` |
103
+ | `.ml64` | `margin-left: 64` |
104
+ | `.ml72` | `margin-left: 72` |
105
+ | `.ml80` | `margin-left: 80` |
106
+ | `.ml88` | `margin-left: 88` |
107
+ | `.ml96` | `margin-left: 96` |
108
+
109
+ ### Auto
110
+
111
+ Note: this only applies to the margin property
112
+
113
+ | Class | Output |
114
+ | ---------- | --------------------- |
115
+ | `.m-auto` | `margin: auto` |
116
+ | `.mt-auto` | `margin-top: auto` |
117
+ | `.mb-auto` | `margin-bottom: auto` |
118
+ | `.ml-auto` | `margin-left: auto` |
119
+ | `.mr-auto` | `margin-right: auto` |
120
+
121
+ ### gap (Equal gap horizontally and vertically)
122
+
123
+ | Class | Output |
124
+ | -------- | --------- |
125
+ | `.gap0` | `gap: 0` |
126
+ | `.gap8` | `gap: 8` |
127
+ | `.gap6` | `gap: 16` |
128
+ | `.gap24` | `gap: 24` |
129
+ | `.gap32` | `gap: 32` |
130
+ | `.gap40` | `gap: 40` |
131
+ | `.gap48` | `gap: 48` |
132
+ | `.gap56` | `gap: 56` |
133
+ | `.gap64` | `gap: 64` |
134
+ | `.gap72` | `gap: 72` |
135
+ | `.gap80` | `gap: 80` |
136
+ | `.gap88` | `gap: 88` |
137
+ | `.gap96` | `gap: 96` |
138
+
139
+ ### column-gap (Horizontal gap between items)
140
+
141
+ | Class | Output |
142
+ | ---------- | ---------------- |
143
+ | `.c-gap0` | `column-gap: 0` |
144
+ | `.c-gap8` | `column-gap: 8` |
145
+ | `.c-gap6` | `column-gap: 16` |
146
+ | `.c-gap24` | `column-gap: 24` |
147
+ | `.c-gap32` | `column-gap: 32` |
148
+ | `.c-gap40` | `column-gap: 40` |
149
+ | `.c-gap48` | `column-gap: 48` |
150
+ | `.c-gap56` | `column-gap: 56` |
151
+ | `.c-gap64` | `column-gap: 64` |
152
+ | `.c-gap72` | `column-gap: 72` |
153
+ | `.c-gap80` | `column-gap: 80` |
154
+ | `.c-gap88` | `column-gap: 88` |
155
+ | `.c-gap96` | `column-gap: 96` |
156
+
157
+ ### row-gap (Vertical gap between items)
158
+
159
+ | Class | Output |
160
+ | ---------- | ------------- |
161
+ | `.r-gap0` | `row-gap: 0` |
162
+ | `.r-gap8` | `row-gap: 8` |
163
+ | `.r-gap6` | `row-gap: 16` |
164
+ | `.r-gap24` | `row-gap: 24` |
165
+ | `.r-gap32` | `row-gap: 32` |
166
+ | `.r-gap40` | `row-gap: 40` |
167
+ | `.r-gap48` | `row-gap: 48` |
168
+ | `.r-gap56` | `row-gap: 56` |
169
+ | `.r-gap64` | `row-gap: 64` |
170
+ | `.r-gap72` | `row-gap: 72` |
171
+ | `.r-gap80` | `row-gap: 80` |
172
+ | `.r-gap88` | `row-gap: 88` |
173
+ | `.r-gap96` | `row-gap: 96` |
@@ -0,0 +1,42 @@
1
+ @use "../../public/colors";
2
+
3
+ .width-container {
4
+ & > div {
5
+ height: 32px;
6
+ line-height: 32px;
7
+ text-align: center;
8
+ border-radius: 8px;
9
+ color: white;
10
+ background-color: colors.$ds-primary-500;
11
+
12
+ margin-top: 4px;
13
+ }
14
+ }
15
+
16
+ .min-width-container {
17
+ & > div {
18
+ display: flex;
19
+
20
+ margin-top: 4px;
21
+
22
+ & > * {
23
+ height: 32px;
24
+ line-height: 32px;
25
+ text-align: center;
26
+ color: white;
27
+ }
28
+
29
+ & > *:first-child {
30
+ border-top-left-radius: 8px;
31
+ border-bottom-left-radius: 8px;
32
+ background-color: colors.$ds-primary-500;
33
+ }
34
+
35
+ & > *:nth-child(2) {
36
+ border-top-right-radius: 8px;
37
+ border-bottom-right-radius: 8px;
38
+ background-color: colors.$ds-grey-300;
39
+ width: 100%;
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,71 @@
1
+ import { Meta, Story, Preview } from '@storybook/addon-docs/blocks';
2
+
3
+ import { Typography } from './demo';
4
+
5
+ <Meta title="CSS/Base/Typography" />
6
+
7
+ # Typography
8
+
9
+ Dirty swan provides classes to override default heading.
10
+
11
+ ## Typography classes
12
+
13
+ ### Desktop
14
+
15
+ | Class | Font size | Font weight |
16
+ | ------------ | ---------------- | ----------- |
17
+ | `p-h1--xl` | font-size: 48px; | _bold_ |
18
+ | `p-h1` | font-size: 32px; | _bold_ |
19
+ | `p-h2` | font-size: 24px; | _bold_ |
20
+ | `p-h3` | font-size: 18px; | _bold_ |
21
+ | `p-h4` | font-size: 16px; | _bold_ |
22
+ | `p-p` | font-size: 16px; | normal |
23
+ | `p-p--small` | font-size: 12x; | normal |
24
+
25
+ ### Mobile
26
+
27
+ | Class | Font size | Font weight |
28
+ | ------------ | ---------------- | ----------- |
29
+ | `p-h1--xl` | font-size: 32px; | _bold_ |
30
+ | `p-h1` | font-size: 24px; | _bold_ |
31
+ | `p-h2` | font-size: 18px; | _bold_ |
32
+ | `p-h3` | font-size: 16px; | _bold_ |
33
+ | `p-h4` | font-size: 16px; | _bold_ |
34
+ | `p-p` | font-size: 16px; | normal |
35
+ | `p-p--small` | font-size: 12x; | normal |
36
+
37
+ ## Typography classes example
38
+
39
+ <Preview>
40
+ <Typography />
41
+ </Preview>
42
+
43
+ ```html
44
+ <h1 class="p-h1--xl">The quick brown fox jumps over the lazy dog</h1>
45
+ <h1 class="p-h1">The quick brown fox jumps over the lazy dog</h1>
46
+ <h2 class="p-h2">The quick brown fox jumps over the lazy dog</h2>
47
+ <h3 class="p-h3">The quick brown fox jumps over the lazy dog</h3>
48
+ <h4 class="p-h4">The quick brown fox jumps over the lazy dog</h4>
49
+ <p class="p-p">The quick brown fox jumps over the lazy dog</p>
50
+ <p class="p-p--small">The quick brown fox jumps over the lazy dog</p>
51
+ ```
52
+
53
+ ## Layout
54
+
55
+ ### Layout classes
56
+
57
+ | Class | Output |
58
+ | ------------ | -------------------- |
59
+ | `ta-left` | text-align: left; |
60
+ | `ta-center` | text-align: center; |
61
+ | `ta-right` | text-align: right; |
62
+ | `ta-justify` | text-align: justify; |
63
+
64
+ ## Font style
65
+
66
+ ### Font style classes
67
+
68
+ | Class | Output |
69
+ | ----------- | ------------------- |
70
+ | `fs-italic` | font-style: italic; |
71
+ | `fs-normal` | font-style: normal; |