ode-bootstrap 1.1.4-feat-produit.202306051650 → 1.1.4-feat-explorer.202306051652

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 (144) hide show
  1. package/README.md +44 -63
  2. package/assets/fonts/fa/fa-brands-400.ttf +0 -0
  3. package/assets/fonts/fa/fa-brands-400.woff2 +0 -0
  4. package/assets/fonts/fa/fa-regular-400.ttf +0 -0
  5. package/assets/fonts/fa/fa-regular-400.woff2 +0 -0
  6. package/assets/fonts/fa/fa-solid-900.ttf +0 -0
  7. package/assets/fonts/fa/fa-solid-900.woff2 +0 -0
  8. package/assets/fonts/fa/fa-v4compatibility.ttf +0 -0
  9. package/assets/fonts/fa/fa-v4compatibility.woff2 +0 -0
  10. package/assets/icons/apps.svg +468 -0
  11. package/assets/images/emptyscreen/illu-blog.svg +1 -0
  12. package/assets/images/emptyscreen/illu-collaborativeeditor.svg +1 -0
  13. package/assets/images/emptyscreen/illu-collaborativewall.svg +1 -0
  14. package/assets/images/emptyscreen/illu-exercizer.svg +1 -0
  15. package/assets/images/emptyscreen/illu-mindmap.svg +1 -0
  16. package/assets/images/emptyscreen/illu-noContentInFolder.svg +31 -0
  17. package/assets/images/emptyscreen/illu-scrapbook.svg +1 -0
  18. package/assets/images/emptyscreen/illu-search.svg +1 -0
  19. package/assets/images/emptyscreen/illu-timelinegenerator.svg +1 -0
  20. package/assets/images/emptyscreen/illu-trash.svg +1 -0
  21. package/assets/images/image-library.png +0 -0
  22. package/assets/images/no-avatar.svg +14 -0
  23. package/assets/images/onboarding/corbeille-delete.svg +22 -0
  24. package/assets/images/onboarding/corbeille-menu.svg +43 -0
  25. package/assets/images/onboarding/corbeille-notif.svg +12 -0
  26. package/assets/images/screen-loading.gif +0 -0
  27. package/assets/js/theme.js +3 -3
  28. package/dist/icons/apps.svg +468 -0
  29. package/dist/images/emptyscreen/illu-blog.svg +1 -0
  30. package/dist/images/emptyscreen/illu-collaborativeeditor.svg +1 -0
  31. package/dist/images/emptyscreen/illu-collaborativewall.svg +1 -0
  32. package/dist/images/emptyscreen/illu-exercizer.svg +1 -0
  33. package/dist/images/emptyscreen/illu-mindmap.svg +1 -0
  34. package/dist/images/emptyscreen/illu-noContentInFolder.svg +31 -0
  35. package/dist/images/emptyscreen/illu-scrapbook.svg +1 -0
  36. package/dist/images/emptyscreen/illu-search.svg +1 -0
  37. package/dist/images/emptyscreen/illu-timelinegenerator.svg +1 -0
  38. package/dist/images/emptyscreen/illu-trash.svg +1 -0
  39. package/dist/images/image-library.png +0 -0
  40. package/dist/images/image-placeholder.png +0 -0
  41. package/dist/images/no-avatar.svg +14 -0
  42. package/dist/images/onboarding/corbeille-delete.svg +22 -0
  43. package/dist/images/onboarding/corbeille-menu.svg +43 -0
  44. package/dist/images/onboarding/corbeille-notif.svg +12 -0
  45. package/dist/images/screen-loading.gif +0 -0
  46. package/dist/version.txt +1 -1
  47. package/package.json +25 -25
  48. package/scss/components/_.scss +26 -10
  49. package/scss/components/_actionbar.scss +25 -0
  50. package/scss/components/_alert.scss +82 -0
  51. package/scss/components/_app-card.scss +67 -0
  52. package/scss/components/_avatar.scss +122 -51
  53. package/scss/components/_buttons.scss +203 -60
  54. package/scss/components/_card.scss +132 -0
  55. package/scss/components/_container-advanced.scss +109 -109
  56. package/scss/components/_dragndrop.scss +19 -16
  57. package/scss/components/_dropdown.scss +82 -0
  58. package/scss/components/_emptyscreen.scss +11 -47
  59. package/scss/components/_explorer.scss +29 -31
  60. package/scss/components/_feed.scss +166 -166
  61. package/scss/components/_filters.scss +58 -58
  62. package/scss/components/_form-control.scss +69 -0
  63. package/scss/components/_form-label.scss +32 -0
  64. package/scss/components/_form-text.scss +12 -0
  65. package/scss/components/_header.scss +8 -0
  66. package/scss/components/_help.scss +82 -0
  67. package/scss/components/_image-picker.scss +40 -0
  68. package/scss/components/_input-group.scss +17 -0
  69. package/scss/components/_loader.scss +17 -0
  70. package/scss/components/_loading-screen.scss +7 -0
  71. package/scss/components/_media-library.scss +18 -18
  72. package/scss/components/_modal.scss +111 -19
  73. package/scss/components/_popover.scss +61 -101
  74. package/scss/components/_select-list.scss +44 -0
  75. package/scss/components/_spinner.scss +10 -0
  76. package/scss/components/_sticky-toolbox.scss +130 -140
  77. package/scss/components/_table-explorer.scss +29 -0
  78. package/scss/components/_table-lists.scss +119 -122
  79. package/scss/components/_tables.scss +1 -1
  80. package/scss/components/_toast.scss +39 -36
  81. package/scss/components/_treeview.scss +61 -0
  82. package/scss/components/_validate-mail.scss +5 -0
  83. package/scss/components/widget/_applications.scss +44 -44
  84. package/scss/components/widget/_base.scss +105 -105
  85. package/scss/components/widget/_bookmarks.scss +14 -16
  86. package/scss/components/widget/_calendar.scss +49 -49
  87. package/scss/components/widget/_dashboard.scss +88 -89
  88. package/scss/components/widget/_featured-news.scss +56 -57
  89. package/scss/components/widget/_flash.scss +84 -81
  90. package/scss/components/widget/_news.scss +26 -26
  91. package/scss/components/widget/_recently-viewed.scss +48 -48
  92. package/scss/components/widget/_record.scss +47 -51
  93. package/scss/components/widget/_rss.scss +24 -24
  94. package/scss/components/widget/_school.scss +84 -78
  95. package/scss/index.scss +3 -12
  96. package/scss/mixins/_.scss +4 -4
  97. package/scss/mixins/_align.scss +3 -3
  98. package/scss/mixins/_avatar.scss +5 -5
  99. package/scss/mixins/_icon.scss +52 -52
  100. package/scss/mixins/_layer.scss +23 -26
  101. package/scss/mixins/_shape.scss +5 -7
  102. package/scss/mixins/_text-truncate.scss +2 -2
  103. package/scss/mixins/_transition.scss +37 -34
  104. package/scss/tokens/_.scss +4 -0
  105. package/scss/tokens/_display.scss +9 -0
  106. package/scss/tokens/_icons.scss +118 -0
  107. package/scss/tokens/_shadows.scss +19 -0
  108. package/scss/tokens/_type.scss +85 -0
  109. package/scss/utilities/_.scss +3 -0
  110. package/scss/utilities/_animation.scss +8 -0
  111. package/scss/utilities/_containers.scss +37 -0
  112. package/scss/utilities/_custom-utilities.scss +96 -0
  113. package/scss/variables/_.scss +6 -2
  114. package/scss/variables/_bootstrap.scss +234 -0
  115. package/scss/variables/_colors.scss +143 -41
  116. package/scss/variables/_icons.scss +52 -48
  117. package/scss/variables/_options.scss +2 -0
  118. package/scss/variables/_type.scss +37 -0
  119. package/scss/vendors/_.scss +3 -0
  120. package/scss/vendors/_bootstrap.scss +43 -0
  121. package/scss/vendors/_reboot.scss +28 -0
  122. package/scss/vendors/_swiper.scss +10 -0
  123. package/assets/fonts/fa/fa-brands-400.eot +0 -0
  124. package/assets/fonts/fa/fa-brands-400.svg +0 -3717
  125. package/assets/fonts/fa/fa-brands-400.woff +0 -0
  126. package/assets/fonts/fa/fa-regular-400.eot +0 -0
  127. package/assets/fonts/fa/fa-regular-400.svg +0 -801
  128. package/assets/fonts/fa/fa-regular-400.woff +0 -0
  129. package/assets/fonts/fa/fa-solid-900.eot +0 -0
  130. package/assets/fonts/fa/fa-solid-900.svg +0 -5034
  131. package/assets/fonts/fa/fa-solid-900.woff +0 -0
  132. package/scss/_bootstrap.scss +0 -41
  133. package/scss/_custom-utilities.scss +0 -10
  134. package/scss/atoms/_.scss +0 -4
  135. package/scss/atoms/_display.scss +0 -17
  136. package/scss/atoms/_fonts.scss +0 -20
  137. package/scss/atoms/_icons.scss +0 -90
  138. package/scss/atoms/_typography.scss +0 -27
  139. package/scss/components/_alerts.scss +0 -30
  140. package/scss/components/_dropdowns.scss +0 -6
  141. package/scss/components/_forms.scss +0 -36
  142. package/scss/components/_tree-structure.scss +0 -143
  143. package/scss/variables/_variables-bootstrap.scss +0 -107
  144. package/scss/variables/_variables-ode.scss +0 -12
@@ -0,0 +1,67 @@
1
+ .application:is(.application-react) {
2
+ // variant title, square
3
+ &.application-title {
4
+ display: none;
5
+ background-image: none;
6
+
7
+ img {
8
+ object-fit: contain;
9
+ }
10
+
11
+ @include media-breakpoint-up(md) {
12
+ display: flex;
13
+ gap: $spacer-12;
14
+ align-items: center;
15
+ }
16
+ }
17
+ &.application-square {
18
+ align-items: center;
19
+ border-radius: $border-radius;
20
+ display: flex;
21
+ flex-direction: column;
22
+ gap: $spacer-8;
23
+ width: 8rem;
24
+
25
+ > div {
26
+ align-items: center;
27
+ aspect-ratio: 1;
28
+ border-radius: $border-radius;
29
+ display: flex;
30
+ justify-content: center;
31
+ }
32
+ }
33
+ }
34
+
35
+ .app-icon {
36
+ flex-shrink: 0;
37
+ &.icon-ratio {
38
+ &.square,
39
+ &.rounded,
40
+ &.rounded-circle {
41
+ > svg {
42
+ width: 100%;
43
+ height: 100%;
44
+ }
45
+
46
+ &.icon-xs {
47
+ padding: $spacer-4;
48
+ }
49
+
50
+ &.icon-sm {
51
+ padding: $spacer-8;
52
+ }
53
+
54
+ &.icon-md {
55
+ padding: $spacer-8;
56
+ }
57
+
58
+ &.icon-lg {
59
+ padding: $spacer-16;
60
+ }
61
+
62
+ &.icon-xl {
63
+ padding: 3.2rem;
64
+ }
65
+ }
66
+ }
67
+ }
@@ -1,75 +1,146 @@
1
1
  $avatar-size: 65px !default;
2
2
 
3
3
  .avatar {
4
- display: inline-block;
5
- vertical-align: middle;
6
- border-radius: 50%;
4
+ --#{$prefix}avatar-size: 8rem;
5
+ --#{$prefix}avatar-svg-size: 5rem;
6
+ --#{$prefix}avatar-bg-color: #{$white};
7
7
 
8
- &--20 {
9
- width: 20px;
10
- height: 20px;
8
+ background-color: var(--#{$prefix}avatar-bg-color);
9
+ border-radius: 0.8rem;
10
+ overflow: clip;
11
+ min-width: var(--ode-avatar-size);
12
+ height: var(--#{$prefix}avatar-size);
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: center;
16
+ aspect-ratio: 1 / 1;
17
+
18
+ > img {
19
+ object-fit: cover;
20
+ margin: 0 auto;
11
21
  }
12
22
 
13
- &--25 {
14
- width: 25px;
15
- height: 25px;
23
+ > svg {
24
+ width: var(--#{$prefix}avatar-svg-size);
25
+ height: var(--#{$prefix}avatar-svg-size);
16
26
  }
17
- &--50 {
18
- width: 50px;
19
- height: 50px;
27
+
28
+ &.avatar-square {
29
+ border-radius: $border-radius;
20
30
  }
21
31
 
22
- &--100 {
23
- width: 100px;
24
- height: 100px;
32
+ &.avatar-rounded {
33
+ border-radius: 50%;
25
34
  }
26
35
 
27
- &-social {
28
- position: relative;
36
+ &.avatar-title {
37
+ height: 100%;
38
+ }
29
39
 
30
- @include circle($avatar-size);
40
+ &.avatar-xs {
41
+ --#{$prefix}avatar-size: 2.4rem;
42
+ --#{$prefix}avatar-svg-size: 1.25rem;
43
+ }
31
44
 
32
- .photo {
33
- img {
34
- @include avatar-image($avatar-size);
35
- }
36
- }
45
+ &.avatar-sm {
46
+ --#{$prefix}avatar-size: 3.2rem;
47
+ --#{$prefix}avatar-svg-size: 2.5rem;
48
+ }
37
49
 
38
- .circle {
39
- @include have-child-in-middle();
40
- @include circle(calc(#{$avatar-size} / 1.8));
50
+ &.avatar-md {
51
+ --#{$prefix}avatar-size: 4rem;
52
+ --#{$prefix}avatar-svg-size: 2.5rem;
53
+ }
41
54
 
42
- position: absolute;
43
- right: 0;
44
- bottom: 0;
45
- font-size: calc(#{$avatar-size} / 3.5);
46
- color: $white;
47
- transform: translate(20%, 20%);
48
- }
55
+ &.avatar-lg {
56
+ --#{$prefix}avatar-size: 8rem;
57
+ --#{$prefix}avatar-svg-size: 5rem;
58
+ }
59
+
60
+ &.avatar-xl {
61
+ --#{$prefix}avatar-size: 16rem;
62
+ --#{$prefix}avatar-svg-size: 10rem;
49
63
  }
50
64
 
51
- &-link {
65
+ &.avatar-auto {
66
+ --#{$prefix}avatar-size: auto;
67
+ --#{$prefix}avatar-svg-size: 100%;
68
+ }
69
+ }
70
+
71
+ body:not(.app-react) {
72
+ .avatar {
52
73
  display: inline-block;
53
- cursor: pointer;
74
+ vertical-align: middle;
75
+ border-radius: 50%;
54
76
 
55
- img {
56
- @include avatar-image($avatar-size);
57
- background: #ffff;
77
+ /*&--20 {
78
+ width: 20px;
79
+ height: 20px;
58
80
  }
59
- }
60
81
 
61
- .navbar.no-1d & {
62
- margin-top: -0.3rem;
63
- width: 3rem;
64
- max-width: 3rem;
65
- height: 3rem;
66
- background-color: $white;
67
-
68
- @include media-breakpoint-down(md) {
69
- display: inline-block;
70
- width: 2rem;
71
- max-width: 2rem;
72
- height: 2rem;
82
+ &--25 {
83
+ width: 25px;
84
+ height: 25px;
85
+ }
86
+ &--50 {
87
+ width: 50px;
88
+ height: 50px;
89
+ }
90
+
91
+ &--100 {
92
+ width: 100px;
93
+ height: 100px;
94
+ }*/
95
+
96
+ &-social {
97
+ position: relative;
98
+
99
+ @include circle($avatar-size);
100
+
101
+ .photo {
102
+ overflow: hidden;
103
+ @include avatar-image($avatar-size);
104
+ }
105
+
106
+ .circle {
107
+ @include have-child-in-middle();
108
+ @include circle(calc(#{$avatar-size} / 1.8));
109
+
110
+ position: absolute;
111
+ right: 0;
112
+ bottom: 0;
113
+ font-size: calc(#{$avatar-size} / 3.5);
114
+ color: $white;
115
+ transform: translate(20%, 20%);
116
+ }
73
117
  }
118
+
119
+ /*&-link {
120
+ cursor: pointer;
121
+ overflow: hidden;
122
+ @include avatar-image($avatar-size);
123
+
124
+ img {
125
+ background: $white;
126
+ }
127
+ }*/
74
128
  }
129
+
130
+ /*.navbar.no-1d {
131
+ .avatar {
132
+ margin-top: -0.3rem;
133
+ width: 3rem;
134
+ max-width: 3rem;
135
+ height: 3rem;
136
+ background-color: $white;
137
+
138
+ @include media-breakpoint-down(md) {
139
+ display: inline-block;
140
+ width: 2rem;
141
+ max-width: 2rem;
142
+ height: 2rem;
143
+ }
144
+ }
145
+ }*/
75
146
  }
@@ -1,78 +1,221 @@
1
- %btn-alt-base {
2
- position: relative;
3
- z-index: 2;
4
- padding: 0 15px;
5
- font-size: 14px;
6
- line-height: 2.4em;
7
- color: #fff;
8
- letter-spacing: 1.08px;
9
- border: 1px solid currentColor;
10
- border-radius: 30px;
11
- }
12
-
13
1
  .btn {
14
- &.btn-alt {
15
- @extend %btn-alt-base;
2
+ --#{$prefix}btn-active-box-shadow-color: #{$btn-box-shadow};
3
+ --#{$prefix}btn-align-items: #{$btn-align-items};
4
+ --#{$prefix}btn-border-radius: #{$btn-border-radius};
5
+ --#{$prefix}btn-border-width: #{$btn-border-width};
6
+ --#{$prefix}btn-box-shadow: #{$btn-box-shadow};
7
+ --#{$prefix}btn-disabled-opacity: #{$btn-disabled-opacity};
8
+ --#{$prefix}btn-display-mode: #{$btn-display-mode};
9
+ --#{$prefix}btn-focus-bg: #{$primary};
10
+ --#{$prefix}btn-focus-border-color: #{$orange-200};
11
+ --#{$prefix}btn-focus-box-shadow-color: #{$btn-box-shadow};
12
+ --#{$prefix}btn-focus-color: #{$white};
13
+ --#{$prefix}btn-font-family: #{$btn-font-family};
14
+ --#{$prefix}btn-font-size: #{$btn-font-size};
15
+ --#{$prefix}btn-font-weight: #{$btn-font-weight};
16
+ --#{$prefix}btn-gap: #{$btn-gap};
17
+ --#{$prefix}btn-justify-content: #{$btn-justify-content};
18
+ --#{$prefix}btn-search-bg: #{$btn-search-bg};
19
+ --#{$prefix}btn-search-focus-border-color: #{$btn-search-focus-border-color};
20
+ --#{$prefix}btn-active-box-shadow-width: 0.1rem;
16
21
 
17
- background-color: $third;
18
- border-color: $third;
22
+ transition: all 250ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
19
23
 
20
- @include add-transitions(border-color, background-color) {
21
- background-color: $orange;
22
- border-color: $orange;
23
- }
24
+ span,
25
+ .loading {
26
+ align-items: var(--#{$prefix}btn-align-items);
27
+ display: var(--#{$prefix}btn-display-mode);
28
+ gap: var(--#{$prefix}btn-gap);
29
+ justify-content: var(--#{$prefix}btn-justify-content);
30
+ transition: all 250ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
31
+ }
32
+
33
+ svg {
34
+ height: $btn-svg-size;
35
+ width: $btn-svg-size;
36
+ min-width: $btn-svg-size;
37
+
38
+ path {
39
+ fill: currentColor;
24
40
  }
41
+ }
25
42
 
26
- &.btn-alt-outline {
27
- @extend %btn-alt-base;
43
+ &:first-child:active:focus-visible {
44
+ box-shadow: none;
45
+ }
28
46
 
29
- @include add-transitions(border-color, color) {
30
- color: $orange;
31
- border-color: $orange;
32
- }
47
+ &:active,
48
+ &.active {
49
+ box-shadow: none;
33
50
 
34
- color: $third;
35
- background-color: transparent;
36
- border: 1px solid $third;
51
+ &:focus-visible {
52
+ box-shadow: none;
37
53
  }
54
+ }
38
55
 
39
- &-light {
40
- background-color: $gray-200;
41
-
42
- @include add-transitions(color, background-color) {
43
- color: $primary;
44
- text-decoration: none;
45
- background-color: $gray-200;
46
- }
56
+ &:not(.btn-icon):focus-visible {
57
+ background-color: var(--#{$prefix}btn-focus-bg);
58
+ border-color: var(--#{$prefix}btn-focus-border-color);
59
+ box-shadow: none;
60
+ }
61
+
62
+ @if $enable-one {
63
+ text-transform: uppercase;
64
+
65
+ &:not(.btn-icon, .btn-search, .btn-ghost-primary, .btn-ghost-secondary, .btn-ghost-tertiary, .btn-ghost-danger) {
66
+ svg {
67
+ transform: translateY(-0.2rem);
68
+ }
47
69
  }
48
70
 
49
- &-circle {
50
- @include circle(2.5em);
51
- @include have-child-in-middle();
71
+ &:hover,
72
+ &.hover {
73
+ &:not(.btn-search) {
74
+ transform: translateY(-0.2rem);
75
+ box-shadow: 0 0.2rem 0 0 var(--#{$prefix}btn-hover-border-color);
76
+ }
52
77
 
53
- @include add-transitions(color, background-color) {
54
- color: #fff;
55
- text-decoration: none;
56
- background-color: $cyan;
78
+ &:is(.btn-search) {
79
+ span {
80
+ transform: translateY(-0.2rem);
57
81
  }
82
+ }
83
+ }
58
84
 
59
- position: relative;
60
- display: inline-flex;
61
- // margin-bottom: 1.5em;
62
- font-size: 2em;
63
- color: #fff;
64
- background-color: $third;
65
-
66
- .label {
67
- position: absolute;
68
- bottom: -2em;
69
- font-size: 0.8em;
70
- color: $gray-700;
71
- }
85
+ &:active,
86
+ &.active {
87
+ &:not(.btn-search) {
88
+ transform: translateY(0);
89
+ box-shadow: none;
90
+ }
91
+ }
92
+
93
+ &:not(.btn-icon):focus-visible {
94
+ --#{$prefix}btn-border-width: 0.1rem;
95
+ box-shadow: inset 0 0 0 0.1rem var(--#{$prefix}btn-focus-border-color);
96
+ }
97
+ } @else {
98
+ &:hover,
99
+ &.hover,
100
+ &:focus-visible {
101
+ > span {
102
+ transform: translateY(-0.2rem);
103
+ }
104
+ }
105
+
106
+ &:active,
107
+ &.active {
108
+ box-shadow: inset
109
+ 0
110
+ 0
111
+ 0
112
+ var(--#{$prefix}btn-active-box-shadow-width)
113
+ var(--#{$prefix}btn-active-border-color);
114
+
115
+ > span {
116
+ transform: translateY(0);
117
+ }
118
+ }
119
+
120
+ &:focus-visible {
121
+ box-shadow: inset
122
+ 0
123
+ 0
124
+ 0
125
+ var(--#{$prefix}btn-active-box-shadow-width)
126
+ var(--#{$prefix}btn-focus-border-color);
127
+ }
128
+ }
129
+
130
+ &.btn-sm {
131
+ --#{$prefix}btn-padding-x: #{$spacer-8};
132
+ --#{$prefix}btn-padding-y: #{$spacer-8};
133
+ }
134
+
135
+ &.btn-md {
136
+ --#{$prefix}btn-padding-x: #{$btn-padding-x};
137
+ --#{$prefix}btn-padding-y: #{$btn-padding-y};
138
+ }
139
+
140
+ &.btn-loading {
141
+ pointer-events: none;
142
+ }
143
+
144
+ &.btn-circle {
145
+ @include circle(2.5em);
146
+ @include have-child-in-middle();
147
+
148
+ @include add-transitions(color, background-color) {
149
+ color: #fff;
150
+ text-decoration: none;
151
+ background-color: $secondary-900;
152
+ }
153
+
154
+ position: relative;
155
+ display: inline-flex;
156
+ font-size: 2em;
157
+ color: $white;
158
+ background-color: $secondary;
159
+
160
+ .label {
161
+ position: absolute;
162
+ bottom: -2em;
163
+ font-size: 0.8em;
164
+ color: $gray-700;
165
+ }
166
+ }
167
+
168
+ &.btn-search {
169
+ --#{$prefix}btn-border-color: #{$gray-400};
170
+ --#{$prefix}btn-border-width: 0.1rem;
171
+ background-color: var(--#{$prefix}btn-search-bg);
172
+ color: $gray-800;
173
+
174
+ svg {
175
+ height: $btn-search-icon-size;
176
+ width: $btn-search-icon-size;
177
+ min-width: $btn-search-icon-size;
178
+ }
179
+
180
+ &:hover {
181
+ --#{$prefix}btn-hover-border-color: #{$gray-400};
72
182
  }
73
- // A réécrire, mais le btn-circle de Julien ne colle pas à mon cas (les width en em, la font-size, la couleur, etc)
74
183
 
75
- &-circular {
76
- @include circle(32px);
184
+ &:active {
185
+ --#{$prefix}btn-active-border-color: #{$gray-400};
186
+ background-color: var(--#{$prefix}btn-search-bg);
187
+ color: $gray-900;
188
+ }
189
+
190
+ &:focus-visible {
191
+ border-color: var(--#{$prefix}btn-search-focus-border-color);
192
+ box-shadow: none;
193
+ }
194
+
195
+ &:disabled {
196
+ --#{$prefix}btn-disabled-border-color: transparent;
197
+ }
198
+ }
199
+
200
+ &.logout {
201
+ background-color: transparent;
202
+ border: 0;
203
+ }
204
+
205
+ &.btn-naked {
206
+ all: unset;
207
+
208
+ &:focus-visible {
209
+ background-color: transparent;
210
+ }
211
+ }
212
+
213
+ &.btn-close {
214
+ background-position: center;
215
+ background-size: 1.35rem;
216
+
217
+ &:focus-visible {
218
+ background-color: transparent;
77
219
  }
220
+ }
78
221
  }
@@ -0,0 +1,132 @@
1
+ .card {
2
+ --#{$prefix}card-cap-bg: #{$gray-200};
3
+ --#{$prefix}card-inner-border-radius: #{$border-radius};
4
+ --#{$prefix}card-selected: #{$secondary-200};
5
+ --#{$prefix}card-spacer-x: #{$spacer-16};
6
+ --#{$prefix}card-spacer-y: #{$spacer-16};
7
+ --#{$prefix}card-title-spacer-y: #{$spacer-4};
8
+ --#{$prefix}enter-delay: 1s;
9
+
10
+ overflow: hidden;
11
+ border-color: transparent;
12
+
13
+ @if $enable-one {
14
+ border: 1px solid $gray-400;
15
+
16
+ &:hover {
17
+ border-color: $orange-200;
18
+ }
19
+ } @else {
20
+ box-shadow: $box-shadow;
21
+ }
22
+
23
+ &-body {
24
+ display: flex;
25
+ align-items: center;
26
+ gap: $spacer-12;
27
+ }
28
+
29
+ &-image {
30
+ width: 8rem;
31
+ height: 8rem;
32
+ flex-shrink: 0;
33
+ overflow: clip;
34
+ border-radius: $border-radius;
35
+
36
+ > img {
37
+ aspect-ratio: 1 / 1;
38
+ }
39
+ }
40
+
41
+ &-text {
42
+ em {
43
+ color: $gray-700;
44
+ }
45
+ }
46
+
47
+ &-footer {
48
+ display: flex;
49
+ align-items: center;
50
+ justify-content: space-between;
51
+ padding-block: $spacer-8;
52
+ padding-inline: $spacer-16;
53
+ border-radius: $border-radius;
54
+ border: 0;
55
+
56
+ &:last-child {
57
+ border-radius: var(--#{$prefix}card-inner-border-radius);
58
+ }
59
+ }
60
+
61
+ .btn {
62
+ --#{$prefix}btn-border-radius: 0.8rem;
63
+
64
+ opacity: 0;
65
+ padding-block: $spacer-12;
66
+ padding-inline: $spacer-12;
67
+ position: absolute;
68
+ right: 0;
69
+ background-color: transparent;
70
+ border: 0;
71
+
72
+ &:focus-visible {
73
+ opacity: 1;
74
+ }
75
+ }
76
+
77
+ &.is-selected {
78
+ border-color: var(--#{$prefix}card-selected);
79
+
80
+ @if $enable-one {
81
+ --#{$prefix}card-selected: #{orange};
82
+ }
83
+
84
+ .btn {
85
+ opacity: 1;
86
+ background-color: $secondary-100;
87
+ }
88
+ }
89
+
90
+ &.is-animated {
91
+ opacity: 0;
92
+ transition: all 850ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
93
+ animation: enter 850ms forwards;
94
+ animation-delay: var(--#{$prefix}enter-delay);
95
+ }
96
+
97
+ &:focus-within {
98
+ outline: 0;
99
+
100
+ @if $enable-one == false {
101
+ border-color: var(--#{$prefix}card-selected);
102
+ }
103
+
104
+ .btn {
105
+ opacity: 1;
106
+ }
107
+ }
108
+
109
+ @media (hover: hover) {
110
+ &:hover {
111
+ .btn {
112
+ opacity: 1;
113
+ }
114
+ }
115
+ }
116
+
117
+ @media (hover: none) {
118
+ .btn {
119
+ opacity: 1;
120
+ }
121
+ }
122
+ }
123
+
124
+ @keyframes enter {
125
+ 0% {
126
+ opacity: 0;
127
+ }
128
+
129
+ 100% {
130
+ opacity: 1;
131
+ }
132
+ }