@1024pix/pix-ui 11.1.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.
Files changed (196) hide show
  1. package/.buildpacks +2 -0
  2. package/.circleci/config.yml +22 -0
  3. package/.gitattributes +7 -0
  4. package/.github/workflows/auto-merge.yml +26 -0
  5. package/.github/workflows/deploy-storybook.yml +21 -0
  6. package/.github/workflows/npm-publish.yml +23 -0
  7. package/.github/workflows/on-dev-merge.yml +33 -0
  8. package/.nvmrc +1 -0
  9. package/.prettierignore +1 -0
  10. package/.prettierrc.json +12 -0
  11. package/.storybook/fonts.css +1 -0
  12. package/.storybook/main.js +10 -0
  13. package/.storybook/manager.js +6 -0
  14. package/.storybook/preview.js +37 -0
  15. package/.storybook/storybook-custom-theme.js +37 -0
  16. package/CHANGELOG.md +469 -0
  17. package/CNAME +1 -0
  18. package/LICENSE.md +9 -0
  19. package/README.md +58 -0
  20. package/addon/components/pix-background-header.hbs +7 -0
  21. package/addon/components/pix-background-header.js +5 -0
  22. package/addon/components/pix-banner.hbs +16 -0
  23. package/addon/components/pix-banner.js +43 -0
  24. package/addon/components/pix-block.hbs +5 -0
  25. package/addon/components/pix-block.js +11 -0
  26. package/addon/components/pix-button-base.js +27 -0
  27. package/addon/components/pix-button-link.hbs +16 -0
  28. package/addon/components/pix-button-link.js +10 -0
  29. package/addon/components/pix-button-upload.hbs +11 -0
  30. package/addon/components/pix-button-upload.js +20 -0
  31. package/addon/components/pix-button.hbs +43 -0
  32. package/addon/components/pix-button.js +54 -0
  33. package/addon/components/pix-collapsible.hbs +29 -0
  34. package/addon/components/pix-collapsible.js +27 -0
  35. package/addon/components/pix-filter-banner.hbs +28 -0
  36. package/addon/components/pix-filter-banner.js +13 -0
  37. package/addon/components/pix-icon-button.hbs +11 -0
  38. package/addon/components/pix-icon-button.js +33 -0
  39. package/addon/components/pix-input-code.hbs +24 -0
  40. package/addon/components/pix-input-code.js +133 -0
  41. package/addon/components/pix-input-password.hbs +43 -0
  42. package/addon/components/pix-input-password.js +34 -0
  43. package/addon/components/pix-input.hbs +30 -0
  44. package/addon/components/pix-input.js +26 -0
  45. package/addon/components/pix-message.hbs +8 -0
  46. package/addon/components/pix-message.js +30 -0
  47. package/addon/components/pix-multi-select.hbs +70 -0
  48. package/addon/components/pix-multi-select.js +162 -0
  49. package/addon/components/pix-progress-gauge.hbs +19 -0
  50. package/addon/components/pix-progress-gauge.js +29 -0
  51. package/addon/components/pix-radio-button.hbs +12 -0
  52. package/addon/components/pix-radio-button.js +5 -0
  53. package/addon/components/pix-return-to.hbs +15 -0
  54. package/addon/components/pix-return-to.js +20 -0
  55. package/addon/components/pix-select.hbs +55 -0
  56. package/addon/components/pix-select.js +58 -0
  57. package/addon/components/pix-selectable-tag.hbs +10 -0
  58. package/addon/components/pix-selectable-tag.js +13 -0
  59. package/addon/components/pix-stars.hbs +16 -0
  60. package/addon/components/pix-stars.js +27 -0
  61. package/addon/components/pix-tag.hbs +3 -0
  62. package/addon/components/pix-tag.js +11 -0
  63. package/addon/components/pix-textarea.hbs +21 -0
  64. package/addon/components/pix-textarea.js +17 -0
  65. package/addon/components/pix-tooltip-deprecated.hbs +18 -0
  66. package/addon/components/pix-tooltip-deprecated.js +26 -0
  67. package/addon/components/pix-tooltip.hbs +18 -0
  68. package/addon/components/pix-tooltip.js +17 -0
  69. package/addon/styles/_breakpoints.scss +17 -0
  70. package/addon/styles/_colors.scss +87 -0
  71. package/addon/styles/_fonts.scss +10 -0
  72. package/addon/styles/_form.scss +68 -0
  73. package/addon/styles/_pix-background-header.scss +20 -0
  74. package/addon/styles/_pix-banner.scss +67 -0
  75. package/addon/styles/_pix-block.scss +29 -0
  76. package/addon/styles/_pix-button-base.scss +137 -0
  77. package/addon/styles/_pix-button-link.scss +4 -0
  78. package/addon/styles/_pix-button-upload.scss +5 -0
  79. package/addon/styles/_pix-button.scss +40 -0
  80. package/addon/styles/_pix-collapsible.scss +82 -0
  81. package/addon/styles/_pix-filter-banner.scss +74 -0
  82. package/addon/styles/_pix-icon-button.scss +60 -0
  83. package/addon/styles/_pix-input-code.scss +71 -0
  84. package/addon/styles/_pix-input-password.scss +68 -0
  85. package/addon/styles/_pix-input.scss +93 -0
  86. package/addon/styles/_pix-message.scss +35 -0
  87. package/addon/styles/_pix-multi-select.scss +182 -0
  88. package/addon/styles/_pix-progress-gauge.scss +119 -0
  89. package/addon/styles/_pix-radio-button.scss +72 -0
  90. package/addon/styles/_pix-return-to.scss +64 -0
  91. package/addon/styles/_pix-select.scss +71 -0
  92. package/addon/styles/_pix-selectable-tag.scss +86 -0
  93. package/addon/styles/_pix-stars.scss +43 -0
  94. package/addon/styles/_pix-tag.scss +69 -0
  95. package/addon/styles/_pix-textarea.scss +39 -0
  96. package/addon/styles/_pix-tooltip.scss +196 -0
  97. package/addon/styles/_reset-css.scss +36 -0
  98. package/addon/styles/_spacing.scss +9 -0
  99. package/addon/styles/addon.scss +41 -0
  100. package/app/components/pix-background-header.js +1 -0
  101. package/app/components/pix-banner.js +1 -0
  102. package/app/components/pix-block.js +1 -0
  103. package/app/components/pix-button-link.js +1 -0
  104. package/app/components/pix-button-upload.js +1 -0
  105. package/app/components/pix-button.js +1 -0
  106. package/app/components/pix-collapsible.js +1 -0
  107. package/app/components/pix-filter-banner.js +1 -0
  108. package/app/components/pix-icon-button.js +1 -0
  109. package/app/components/pix-input-code.js +1 -0
  110. package/app/components/pix-input-password.js +1 -0
  111. package/app/components/pix-input.js +1 -0
  112. package/app/components/pix-message.js +1 -0
  113. package/app/components/pix-multi-select.js +1 -0
  114. package/app/components/pix-progress-gauge.js +1 -0
  115. package/app/components/pix-radio-button.js +1 -0
  116. package/app/components/pix-return-to.js +1 -0
  117. package/app/components/pix-select.js +1 -0
  118. package/app/components/pix-selectable-tag.js +1 -0
  119. package/app/components/pix-stars.js +1 -0
  120. package/app/components/pix-tag.js +1 -0
  121. package/app/components/pix-textarea.js +1 -0
  122. package/app/components/pix-tooltip-deprecated.js +1 -0
  123. package/app/components/pix-tooltip.js +1 -0
  124. package/app/stories/form.stories.js +91 -0
  125. package/app/stories/form.stories.mdx +16 -0
  126. package/app/stories/pix-background-header.stories.js +19 -0
  127. package/app/stories/pix-background-header.stories.mdx +36 -0
  128. package/app/stories/pix-banner.stories.js +89 -0
  129. package/app/stories/pix-banner.stories.mdx +107 -0
  130. package/app/stories/pix-block.stories.js +20 -0
  131. package/app/stories/pix-block.stories.mdx +44 -0
  132. package/app/stories/pix-button-link.stories.js +125 -0
  133. package/app/stories/pix-button-link.stories.mdx +57 -0
  134. package/app/stories/pix-button-upload.stories.js +85 -0
  135. package/app/stories/pix-button-upload.stories.mdx +39 -0
  136. package/app/stories/pix-button.stories.js +253 -0
  137. package/app/stories/pix-button.stories.mdx +99 -0
  138. package/app/stories/pix-collapsible.stories.js +56 -0
  139. package/app/stories/pix-collapsible.stories.mdx +39 -0
  140. package/app/stories/pix-filter-banner.stories.js +51 -0
  141. package/app/stories/pix-filter-banner.stories.mdx +33 -0
  142. package/app/stories/pix-icon-button.stories.js +95 -0
  143. package/app/stories/pix-icon-button.stories.mdx +90 -0
  144. package/app/stories/pix-input-code.stories.js +74 -0
  145. package/app/stories/pix-input-code.stories.mdx +46 -0
  146. package/app/stories/pix-input-password.stories.js +89 -0
  147. package/app/stories/pix-input-password.stories.mdx +69 -0
  148. package/app/stories/pix-input.stories.js +94 -0
  149. package/app/stories/pix-input.stories.mdx +57 -0
  150. package/app/stories/pix-message.stories.js +57 -0
  151. package/app/stories/pix-message.stories.mdx +71 -0
  152. package/app/stories/pix-multi-select.stories.js +199 -0
  153. package/app/stories/pix-multi-select.stories.mdx +55 -0
  154. package/app/stories/pix-progress-gauge.stories.js +78 -0
  155. package/app/stories/pix-progress-gauge.stories.mdx +43 -0
  156. package/app/stories/pix-radio-button.stories.js +71 -0
  157. package/app/stories/pix-radio-button.stories.mdx +49 -0
  158. package/app/stories/pix-return-to.stories.js +45 -0
  159. package/app/stories/pix-return-to.stories.mdx +41 -0
  160. package/app/stories/pix-select.stories.js +140 -0
  161. package/app/stories/pix-select.stories.mdx +57 -0
  162. package/app/stories/pix-selectable-tag.stories.js +91 -0
  163. package/app/stories/pix-selectable-tag.stories.mdx +55 -0
  164. package/app/stories/pix-stars.stories.js +43 -0
  165. package/app/stories/pix-stars.stories.mdx +35 -0
  166. package/app/stories/pix-tag.stories.js +56 -0
  167. package/app/stories/pix-tag.stories.mdx +46 -0
  168. package/app/stories/pix-textarea.stories.js +59 -0
  169. package/app/stories/pix-textarea.stories.mdx +36 -0
  170. package/app/stories/pix-tooltip-deprecated.stories.js +136 -0
  171. package/app/stories/pix-tooltip-deprecated.stories.mdx +143 -0
  172. package/app/stories/pix-tooltip.stories.js +157 -0
  173. package/app/stories/pix-tooltip.stories.mdx +183 -0
  174. package/app/styles/app.scss +0 -0
  175. package/config/environment.js +5 -0
  176. package/docs/architecture.stories.mdx +106 -0
  177. package/docs/assets/accessibility-storybook.png +0 -0
  178. package/docs/assets/screen-pix-storybook.png +0 -0
  179. package/docs/breaking-changes.stories.mdx +90 -0
  180. package/docs/changelog.stories.mdx +6 -0
  181. package/docs/create-component.stories.mdx +118 -0
  182. package/docs/design-system.stories.mdx +20 -0
  183. package/docs/good-practices-a11y.stories.mdx +48 -0
  184. package/docs/good-practices-design.stories.mdx +71 -0
  185. package/docs/good-practices-responsive.stories.mdx +51 -0
  186. package/docs/good-practices-style-css.stories.mdx +40 -0
  187. package/docs/good-practices-tests.stories.mdx +9 -0
  188. package/docs/make-a-release.stories.mdx +66 -0
  189. package/docs/pull_request_template.md +14 -0
  190. package/docs/storybook.stories.mdx +44 -0
  191. package/docs/use-component.stories.mdx +89 -0
  192. package/docs/use-install.stories.mdx +37 -0
  193. package/index.js +5 -0
  194. package/package.json +121 -0
  195. package/scalingo.json +17 -0
  196. package/servers.conf.erb +30 -0
@@ -0,0 +1,17 @@
1
+ $breakpoints: (
2
+ 'mobile': (max-width: 768px),
3
+ 'tablet': (min-width: 769px),
4
+ 'desktop': (min-width: 992px),
5
+ 'large-screen': (min-width: 1200px),
6
+ ) !default;
7
+
8
+ @mixin device-is($breakpoint) {
9
+ @if map-has-key($breakpoints, $breakpoint) {
10
+ @media #{inspect(map-get($breakpoints, $breakpoint))} {
11
+ @content;
12
+ }
13
+ } @else {
14
+ @warn "Unfortunately, no value could be retrieved from `#{$breakpoint}`. "
15
+ + "Available breakpoints are: #{map-keys($breakpoints)}.";
16
+ }
17
+ }
@@ -0,0 +1,87 @@
1
+ // See https://zeroheight.com/8dd127da7/p/839645-couleurs/b/21317a
2
+
3
+ // primary
4
+ $blue: #3D68FF;
5
+ $yellow: #FFBE00;
6
+ $red: #D63F00;
7
+ $blue-zodiac: #505F79;
8
+ $black: #07142E;
9
+ $white: #ffffff;
10
+ // secondary
11
+ $blue-hover: #3257D9;
12
+ $dark-blue-pro: #1A38A0;
13
+ $dark-green-certif: #17817E;
14
+ $dark-orga: #006C87;
15
+ $green: #038125;
16
+ $orga: #00DDFF;
17
+ $purple: #8845FF;
18
+
19
+ @mixin colorize($color, $percentageDarkenForColor, $percentageLightenForBackground){
20
+ color: darken($color, $percentageDarkenForColor);
21
+ background-color: lighten($color, $percentageLightenForBackground);
22
+ }
23
+
24
+ // gradients
25
+ $pix-gradient: linear-gradient(135deg, $blue 0%, $purple 100%);
26
+ $pix-blue-gradient: linear-gradient(135deg, #12A3FF 0%, #3D68FF 100%);
27
+ $pix-certif-gradient: linear-gradient(0deg, #52D987 0%, #1A8C89 100%);
28
+ $pix-certif-old-gradient: linear-gradient(135deg, #FF3F93 0%, #AC008D 100%);
29
+ $pix-orange-gradient: linear-gradient(180deg, #F24645 0%, #F1A141 100%);
30
+ $pix-orga-gradient: linear-gradient(134deg, #00DDFF 0%, #0095C0 100%);
31
+ $pix-orga-old-gradient: linear-gradient(0deg, #0D7DC4 0%, #213371 100%);
32
+ $pix-pink-gradient: linear-gradient(0deg, #FF3F93 0%, #AC008D 100%);
33
+ $pix-purple-gradient: linear-gradient(180deg, #5E2563 0%, #564DA6 100%);
34
+ $pix-yellow-gradient: linear-gradient(135deg, #FFBE00 0%, #FF9F00 100%);
35
+ $pix-yellow-gradient-right: linear-gradient(to right, #FFBE00, #FF9F00);
36
+ // light
37
+ $grey-5: #FAFBFC;
38
+ $grey-10: #F4F5F7;
39
+ $grey-15: #EAECF0;
40
+ $grey-20: #DFE1E6;
41
+ $grey-22: #C1C7D0;
42
+ $grey-25: #A5ADBA;
43
+ // medium
44
+ $grey-30: #97A0AF;
45
+ $grey-35: #8993A4;
46
+ $grey-40: #7A869A;
47
+ $grey-45: #6B778C;
48
+ $grey-50: #5E6C84;
49
+ $grey-60: #505F79;
50
+ // dark
51
+ $grey-70: #344563;
52
+ $grey-80: #253858;
53
+ $grey-90: #172B4D;
54
+ $grey-100: #091E42;
55
+ $grey-150: #0C163A;
56
+ $grey-200: #07142E;
57
+ // gradients domain
58
+ $information-gradient: linear-gradient(180deg, #F24645 0%, #F1A141 100%);
59
+ $content-gradient: linear-gradient(0deg, #52D987 0%, #1A8C89 100%);
60
+ $communication-gradient: linear-gradient(0deg, #12A3FF 0%, #3D68FF 100%);
61
+ $security-gradient: linear-gradient(0deg, #FF3F93 0%, #AC008D 100%);
62
+ $environment-gradient: linear-gradient(180deg, #5E2563 0%, #564DA6 100%);
63
+ // solids
64
+ $environment-dark: #5E2563;
65
+ $environment-light: #564DA6;
66
+ $communication-dark: #3D68FF;
67
+ $communication-light: #12A3FF;
68
+ $content-dark: #1A8C89;
69
+ $content-light: #52D987;
70
+ $information-dark: #F24645;
71
+ $information-light: #F1A141;
72
+ $security-dark: #AC008D;
73
+ $security-light: #FF3F94;
74
+ $pink-alert-light: #FFE1E1;
75
+ $pink-alert-dark: #A71E1A;
76
+ $blue-alert-light: #DCF1FF;
77
+ $blue-alert-dark: #0D25B3;
78
+ $green-alert-light: #EFFFD8;
79
+ $green-alert-dark: #006134;
80
+ $yellow-alert-light: #FFF1C5;
81
+ $yellow-alert-dark: #A95800;
82
+
83
+
84
+ // status
85
+ $error: #FF4B00;
86
+ $success: #57C884;
87
+ $warning: #FFBE00;
@@ -0,0 +1,10 @@
1
+ $font-open-sans: 'Open Sans', Arial, sans-serif;
2
+ $font-roboto: 'Roboto', Arial, sans-serif;
3
+
4
+ $font-light: 300;
5
+ $font-normal: 400;
6
+ $font-medium: 500;
7
+ $font-semi-bold: 600;
8
+ $font-bold: 700;
9
+ $font-extra-bold: 800;
10
+ $font-heavy: 900;
@@ -0,0 +1,68 @@
1
+ @mixin hoverFormElement(){
2
+ &:hover {
3
+ box-shadow: inset 0px 0px 0px 0.6px $grey-40;
4
+ }
5
+ }
6
+
7
+ @mixin focusFormElement(){
8
+ &:focus {
9
+ border-color: $blue;
10
+ box-shadow: inset 0px 0px 0px 0.6px $blue;
11
+ outline: none;
12
+ }
13
+ }
14
+
15
+ @mixin focusWithinFormElement(){
16
+ &:focus {
17
+ border-color: $blue;
18
+ box-shadow: inset 0px 0px 0px 0.6px $blue;
19
+ outline: none;
20
+ }
21
+ }
22
+
23
+ @mixin label() {
24
+ display: block;
25
+ font-family: $font-roboto;
26
+ font-size: 0.875rem;
27
+ color: $grey-70;
28
+ margin-bottom: 4px;
29
+ }
30
+
31
+ @mixin errorMessage() {
32
+ font-family: $font-roboto;
33
+ font-size: 0.75rem;
34
+ color: $red;
35
+ }
36
+
37
+ @mixin formElementInError() {
38
+ border-color: $red;
39
+ box-shadow: inset 0px 0px 0px 0.6px $red;
40
+ }
41
+
42
+ @mixin input() {
43
+ font-family: $font-roboto;
44
+ font-size: 0.875rem;
45
+ font-weight: 400;
46
+ color: $grey-90;
47
+ border-radius: $spacing-xxs;
48
+ padding: 0 $spacing-s 0 $spacing-s;
49
+ }
50
+
51
+ .pix-form__label {
52
+ @include label();
53
+ padding-bottom: 12px;
54
+ }
55
+
56
+ .pix-radio-button {
57
+ padding: $spacing-xs 0 $spacing-xs 0;
58
+ }
59
+
60
+
61
+ .pix-form__actions {
62
+ display: flex;
63
+ justify-content: center;
64
+
65
+ & > .pix-button:first-child {
66
+ margin-right: 10px;
67
+ }
68
+ }
@@ -0,0 +1,20 @@
1
+ .pix-background-header {
2
+ @import 'reset-css';
3
+
4
+ position: relative;
5
+ display: flex;
6
+ flex-direction: column;
7
+ align-items: center;
8
+ padding: 0 24px;
9
+
10
+ &__background {
11
+ position: absolute;
12
+ top: 0; left: 0;
13
+ z-index: -1;
14
+ width: 100%;
15
+ min-height: 270px;
16
+ background: $pix-gradient;
17
+ box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.1);
18
+ color: $white;
19
+ }
20
+ }
@@ -0,0 +1,67 @@
1
+ .pix-banner {
2
+ @import 'reset-css';
3
+ font-family: $font-roboto;
4
+ font-weight: $font-normal;
5
+ padding: 10px 16px;
6
+ display: flex;
7
+ align-items: center;
8
+ font-size: 0.75rem;
9
+
10
+ @include device-is('tablet') {
11
+ padding: 20px 60px;
12
+ font-size: 0.875rem;
13
+ }
14
+
15
+ &__action {
16
+ text-decoration: underline;
17
+ letter-spacing: 0.028rem;
18
+ color: inherit;
19
+ .external-link {
20
+ margin-left: 3px;
21
+ font-size: 0.75rem;
22
+
23
+ @include device-is('tablet') {
24
+ font-size: 0.875rem;
25
+ }
26
+ }
27
+ }
28
+
29
+ &__icon {
30
+ font-size: 0.875rem;
31
+ margin-right: $spacing-xs;
32
+
33
+ @include device-is('tablet') {
34
+ font-size: 1rem;
35
+ }
36
+ }
37
+
38
+ &--information {
39
+ background-color: $blue-alert-light;
40
+ color: $blue-alert-dark;
41
+ }
42
+
43
+ &--warning {
44
+ background-color: $yellow-alert-light;
45
+ color: $yellow-alert-dark;
46
+ }
47
+
48
+ &--error {
49
+ background-color: $pink-alert-light;
50
+ color: $pink-alert-dark;
51
+ }
52
+
53
+ &--communication {
54
+ background-color: $blue;
55
+ color: $white;
56
+
57
+ &-orga {
58
+ background-color: $dark-orga;
59
+ color: $white;
60
+ }
61
+
62
+ &-certif {
63
+ background-color: $dark-green-certif;
64
+ color: $white;
65
+ }
66
+ }
67
+ }
@@ -0,0 +1,29 @@
1
+ .pix-block {
2
+ position: relative;
3
+ width: 100%;
4
+ max-width: 980px;
5
+ padding: 14px 24px;
6
+ margin-bottom: 32px;
7
+ background-color: $white;
8
+ border-radius: 5px;
9
+
10
+ &--shadow-light {
11
+ box-shadow: 0 10px 20px 0 rgba($blue, .06);
12
+ }
13
+ &--shadow-heavy {
14
+ box-shadow: 0 50px 54px -40px rgba($grey-200, .4),
15
+ 0 7px 14px 0 rgba($grey-150, .1);
16
+ }
17
+ }
18
+
19
+ .pix-background-header {
20
+ &__background + .pix-block {
21
+ margin-top: 68px;
22
+ }
23
+ }
24
+
25
+ @include device-is('mobile') {
26
+ .pix-block {
27
+ padding: 16px;
28
+ }
29
+ }
@@ -0,0 +1,137 @@
1
+ .pix-button {
2
+ @import 'reset-css';
3
+
4
+ color: $white;
5
+ font-family: $font-roboto;
6
+ font-size: 0.875rem;
7
+ font-weight: 500;
8
+ white-space: nowrap;
9
+ letter-spacing: .028rem;
10
+ cursor: pointer;
11
+ background-color: $blue;
12
+ border: 2px solid transparent;
13
+ display: flex;
14
+ justify-content: center;
15
+ align-items: center;
16
+ text-decoration: none;
17
+
18
+ &--shape-rounded {
19
+ border-radius: 25px;
20
+ }
21
+
22
+ &--shape-squircle {
23
+ border-radius: 4px;
24
+ }
25
+
26
+ &--size-big {
27
+ padding: 12px 24px;
28
+ }
29
+
30
+ &--size-small.pix-button--shape-rounded {
31
+ padding: 8px 24px;
32
+ }
33
+
34
+ &--size-small.pix-button--shape-squircle {
35
+ padding: 8px 16px;
36
+ }
37
+
38
+ &--disabled {
39
+ opacity: .5;
40
+ cursor: not-allowed;
41
+ }
42
+
43
+ @mixin colorizeBackground($backgroundColor, $outlineColor) {
44
+ background-color: $backgroundColor;
45
+ border-color: $backgroundColor;
46
+
47
+ &:not(.pix-button--disabled) {
48
+ &:hover, &:focus, &:focus-visible {
49
+ background-color: darken($backgroundColor, 8%);
50
+ box-shadow: 0 0 0 2px darken($outlineColor, 8%);
51
+ border-color: $white;
52
+ outline: none;
53
+ }
54
+
55
+ &:active {
56
+ background-color: darken($backgroundColor, 12%);
57
+ }
58
+ }
59
+ }
60
+
61
+ &--background-blue {
62
+ @include colorizeBackground($blue, $blue);
63
+ }
64
+
65
+ &--background-green {
66
+ @include colorizeBackground($green, $green);
67
+ }
68
+
69
+ &--background-yellow {
70
+ color: $grey-100;
71
+ @include colorizeBackground($yellow, $yellow);
72
+ }
73
+
74
+ &--background-red {
75
+ color: $white;
76
+ @include colorizeBackground($red, $red);
77
+ }
78
+
79
+ &--background-grey {
80
+ @include colorizeBackground($blue-zodiac, $blue-zodiac);
81
+ }
82
+
83
+ /* deprecated in favor of --background-transparent-light + --border */
84
+ &--background-transparent {
85
+ background-color: transparent;
86
+ color: $grey-50;
87
+ border: 2px solid $grey-50;
88
+ }
89
+
90
+ &--background-transparent-light {
91
+ background-color: transparent;
92
+ border-color: transparent;
93
+ color: $grey-90;
94
+
95
+ &:not(.pix-button--disabled) {
96
+ &:hover, &:focus, &:focus-visible {
97
+ background-color: rgba($black, 0.1);
98
+ outline: none;
99
+ }
100
+
101
+ &:active {
102
+ background-color: rgba($black, 0.2);
103
+ }
104
+ }
105
+
106
+ &.pix-button--border {
107
+ border-color: $grey-50;
108
+
109
+ &:not(.pix-button--disabled) {
110
+ &:hover, &:active {
111
+ border-color: $grey-80;
112
+ }
113
+ }
114
+ }
115
+ }
116
+
117
+ &--background-transparent-dark {
118
+ background-color: transparent;
119
+ border-color: transparent;
120
+ color: $white;
121
+
122
+ &:not(.pix-button--disabled) {
123
+ &:hover, &:focus, &:focus-visible {
124
+ background-color: rgba($black, 0.1);
125
+ outline: none;
126
+ }
127
+
128
+ &:active {
129
+ background-color: rgba($black, 0.2);
130
+ }
131
+ }
132
+
133
+ &.pix-button--border {
134
+ border-color: $white;
135
+ }
136
+ }
137
+ }
@@ -0,0 +1,4 @@
1
+ .pix-button-link {
2
+ @import 'reset-css';
3
+
4
+ }
@@ -0,0 +1,5 @@
1
+ .pix-button-upload {
2
+ &__input {
3
+ display: none;
4
+ }
5
+ }
@@ -0,0 +1,40 @@
1
+ .pix-button {
2
+ .loader {
3
+ position: absolute;
4
+
5
+ &__not-visible-text {
6
+ visibility: hidden;
7
+ }
8
+ }
9
+
10
+ .loader > div {
11
+ width: 10px;
12
+ height: 10px;
13
+ background-color: $white;
14
+ border-radius: 100%;
15
+ display: inline-block;
16
+ animation: sk-bouncedelay 1.4s infinite ease-in-out both;
17
+ }
18
+
19
+ .loader--white > div {
20
+ background-color: $white;
21
+ }
22
+ .loader--grey > div {
23
+ background-color: $grey-80;
24
+ }
25
+ .loader .bounce1 {
26
+ animation-delay: -0.32s;
27
+ }
28
+
29
+ .loader .bounce2 {
30
+ animation-delay: -0.16s;
31
+ }
32
+
33
+ @keyframes sk-bouncedelay {
34
+ 0%, 80%, 100% {
35
+ transform: scale(0);
36
+ } 40% {
37
+ transform: scale(1.0);
38
+ }
39
+ }
40
+ }
@@ -0,0 +1,82 @@
1
+ .pix-collapsible {
2
+ @import 'reset-css';
3
+
4
+ width: 100%;
5
+ display: flex;
6
+ flex-direction: column;
7
+ font-family: $font-roboto;
8
+ font-size: 1rem;
9
+ border: 1px solid $grey-20;
10
+ padding: 0;
11
+ cursor: pointer;
12
+ background-color: $white;
13
+
14
+ &__title {
15
+ padding: 14px 10px 14px 16px;
16
+ min-width: 100%;
17
+ cursor: pointer;
18
+ display: flex;
19
+ justify-content: space-between;
20
+ background: transparent;
21
+ border: none;
22
+ color: $grey-60;
23
+ font-size: 1rem;
24
+ font-weight: 500;
25
+
26
+ .pix-collapsible-title__icon {
27
+ color: $grey-45;
28
+ margin-right: 6px;
29
+ }
30
+
31
+ &:hover {
32
+ background-color: $grey-10;
33
+ }
34
+
35
+ &:focus {
36
+ background-color: $grey-10;
37
+ }
38
+
39
+ &--uncollapsed {
40
+ background-color: $grey-10;
41
+ }
42
+ }
43
+
44
+ &__content {
45
+ padding: 16px 20px;
46
+ display: none;
47
+
48
+ &--uncollapse {
49
+ display: initial;
50
+ }
51
+ }
52
+ }
53
+
54
+ .pix-collapsible:first-child {
55
+ border-top-left-radius: 4px;
56
+ border-top-right-radius: 4px;
57
+ }
58
+
59
+ .pix-collapsible:last-child {
60
+ border-bottom-left-radius: 4px;
61
+ border-bottom-right-radius: 4px;
62
+ }
63
+
64
+ .pix-collapsible--uncollapsed {
65
+ margin-top: 10px;
66
+ margin-bottom: 10px;
67
+ box-shadow: 0 2px 5px 0 rgba($black, 0.05);
68
+ border-radius: 4px;
69
+ }
70
+
71
+ .pix-collapsible--uncollapsed:first-child {
72
+ margin-top: 0;
73
+ }
74
+
75
+ .pix-collapsible--uncollapsed:last-child {
76
+ margin-bottom: 0;
77
+ }
78
+
79
+ // Pour le deuxième élément d'affilé qui est refermé, on enlève la bordure-top
80
+ .pix-collapsible:not(.pix-collapsible--uncollapsed) + .pix-collapsible:not(.pix-collapsible--uncollapsed) {
81
+ border-top: none;
82
+ }
@@ -0,0 +1,74 @@
1
+ .pix-filter-banner {
2
+ @import 'reset-css';
3
+
4
+ position: relative;
5
+ display: flex;
6
+ flex-direction: row;
7
+ justify-content: space-between;
8
+ align-items: center;
9
+ width: 100%;
10
+
11
+ background-color: $white;
12
+ box-shadow: 0 2px 5px 0 rgba($black, 0.05);
13
+ min-height: 64px;
14
+ padding: 14px 24px;
15
+
16
+ &__container-left {
17
+ display: flex;
18
+ align-items: center;
19
+ height: 36px;
20
+ }
21
+
22
+ &__container-right {
23
+ display: flex;
24
+ align-items: center;
25
+ justify-content: flex-end;
26
+ height: 36px;
27
+ }
28
+
29
+ &__title {
30
+ color: $grey-60;
31
+ font-family: $font-roboto;
32
+ font-size: 0.875rem;
33
+ padding-right: 24px;
34
+ margin: 0;
35
+ }
36
+
37
+ &__content {
38
+ display: flex;
39
+
40
+ > * {
41
+ margin-right: 16px;
42
+ }
43
+
44
+ > *:last-child {
45
+ margin-right: 0;
46
+ }
47
+ }
48
+
49
+ &__details {
50
+ color: $grey-60;
51
+ font-family: $font-roboto;
52
+ font-weight: $font-medium;
53
+ padding-left: 16px;
54
+ font-size: 0.875rem;
55
+ margin: 0;
56
+ margin-right: 16px;
57
+ height: 18px;
58
+ padding-top: 4px;
59
+ text-align: center;
60
+ }
61
+
62
+ &__button-container {
63
+ border-left: 1px solid $grey-15;
64
+ padding-left: 16px;
65
+ }
66
+
67
+ &__button {
68
+ font-size: 0.875rem;
69
+ }
70
+ }
71
+
72
+ .pix-filter-banner-button__icon {
73
+ padding-right: 4px;
74
+ }
@@ -0,0 +1,60 @@
1
+ .pix-icon-button {
2
+ @import 'reset-css';
3
+
4
+ border-radius: 50%;
5
+ cursor: pointer;
6
+ border: none;
7
+ outline: none;
8
+ padding: 0;
9
+ display: inline-flex;
10
+ align-items: center;
11
+ justify-content: center;
12
+ background-color: transparent;
13
+
14
+ &:disabled {
15
+ opacity: .5;
16
+ cursor: default;
17
+ }
18
+
19
+ &:hover, &:focus {
20
+ transition: background-color 0.2s ease;
21
+ background-color: $grey-15;
22
+ &:disabled {
23
+ background-color: transparent;
24
+ }
25
+ }
26
+
27
+ &:active {
28
+ transition: background-color 0.2s ease;
29
+ background-color: $grey-20;
30
+ }
31
+
32
+ &--background {
33
+ background-color: $grey-10;
34
+ &:hover, &:focus, &:active {
35
+ &:disabled {
36
+ background-color: $grey-15;
37
+ }
38
+ }
39
+ }
40
+
41
+ &--small {
42
+ width: 32px;
43
+ height: 32px;
44
+ font-size: 1rem;
45
+ }
46
+
47
+ &--big {
48
+ width: 38px;
49
+ height: 38px;
50
+ font-size: 1.25rem;
51
+ }
52
+
53
+ &--dark-grey {
54
+ color: $grey-60;
55
+ }
56
+
57
+ &--light-grey {
58
+ color: $grey-60;
59
+ }
60
+ }