@iamproperty/components 3.1.0 → 3.4.4

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 (179) hide show
  1. package/README.md +141 -16
  2. package/assets/css/core.min.css +1 -1
  3. package/assets/css/core.min.css.map +1 -1
  4. package/assets/css/style.min.css +1 -1
  5. package/assets/css/style.min.css.map +1 -1
  6. package/assets/favicons/manifest.json +31 -31
  7. package/assets/js/main.js +57 -57
  8. package/assets/js/modules/accordion.js +33 -32
  9. package/assets/js/modules/alert.js +41 -57
  10. package/assets/js/modules/carousel.js +76 -102
  11. package/assets/js/modules/chart.js +151 -218
  12. package/assets/js/modules/drawer.js +10 -16
  13. package/assets/js/modules/file-upload.js +33 -48
  14. package/assets/js/modules/form.js +122 -168
  15. package/assets/js/modules/helpers.js +90 -119
  16. package/assets/js/modules/modal.js +69 -90
  17. package/assets/js/modules/nav.js +18 -28
  18. package/assets/js/modules/orderablelist.js +91 -122
  19. package/assets/js/modules/table.js +451 -585
  20. package/assets/js/modules/testimonial.js +64 -83
  21. package/assets/js/modules/youtubevideo.js +114 -145
  22. package/assets/js/scripts.bundle.js +895 -955
  23. package/assets/js/scripts.bundle.js.map +1 -1
  24. package/assets/js/scripts.bundle.min.js +3 -3
  25. package/assets/js/scripts.bundle.min.js.map +1 -1
  26. package/assets/sass/_components.scss +14 -14
  27. package/assets/sass/_corefiles.scss +40 -40
  28. package/assets/sass/_fonts.scss +16 -16
  29. package/assets/sass/_forms.scss +10 -10
  30. package/assets/sass/_func.scss +12 -12
  31. package/assets/sass/_functions/functions.scss +141 -141
  32. package/assets/sass/_functions/mixins.scss +170 -170
  33. package/assets/sass/_functions/utilities.scss +143 -143
  34. package/assets/sass/_functions/variables.scss +467 -467
  35. package/assets/sass/_print.scss +61 -61
  36. package/assets/sass/_tests/{sass.spec.js → colours.spec.js} +9 -9
  37. package/assets/sass/_tests/colours.spec.scss +44 -44
  38. package/assets/sass/_tests/func.spec.js +9 -0
  39. package/assets/sass/_tests/func.spec.scss +232 -232
  40. package/assets/sass/_tests/mixins.spec.js +9 -0
  41. package/assets/sass/_tests/mixins.spec.scss +194 -194
  42. package/assets/sass/_tests/typography.spec.js +9 -0
  43. package/assets/sass/_tests/typography.spec.scss +35 -35
  44. package/assets/sass/components/accordion.scss +197 -197
  45. package/assets/sass/components/alert.scss +98 -98
  46. package/assets/sass/{elements → components}/buttons.scss +251 -251
  47. package/assets/sass/{elements → components}/card.scss +288 -288
  48. package/assets/sass/components/cardDeck.scss +107 -107
  49. package/assets/sass/components/carousel.scss +234 -234
  50. package/assets/sass/components/charts.scss +569 -569
  51. package/assets/sass/{elements → components}/container.scss +236 -236
  52. package/assets/sass/components/drawer.scss +46 -46
  53. package/assets/sass/{elements → components}/forms.scss +261 -261
  54. package/assets/sass/components/header.scss +63 -63
  55. package/assets/sass/{elements → components}/links.scss +97 -97
  56. package/assets/sass/{elements → components}/lists.scss +159 -159
  57. package/assets/sass/components/modal.scss +136 -136
  58. package/assets/sass/components/nav.scss +960 -960
  59. package/assets/sass/{elements → components}/panel.scss +161 -161
  60. package/assets/sass/components/property-searchbar.scss +143 -143
  61. package/assets/sass/components/snapshot.scss +70 -70
  62. package/assets/sass/components/stepper.scss +164 -164
  63. package/assets/sass/{elements → components}/tables.scss +290 -290
  64. package/assets/sass/components/tabs.scss +87 -87
  65. package/assets/sass/components/testimonial.scss +132 -132
  66. package/assets/sass/components/timeline.scss +95 -95
  67. package/assets/sass/{elements → components}/tooltips.scss +84 -84
  68. package/assets/sass/core.scss +6 -6
  69. package/assets/sass/email.scss +65 -65
  70. package/assets/sass/error.scss +4 -4
  71. package/assets/sass/foundations/brand.scss +76 -72
  72. package/assets/sass/foundations/circles.scss +74 -74
  73. package/assets/sass/foundations/icons.scss +80 -80
  74. package/assets/sass/foundations/media.scss +50 -50
  75. package/assets/sass/foundations/reboot.scss +130 -130
  76. package/assets/sass/foundations/root.scss +125 -125
  77. package/assets/sass/{elements → foundations}/type.scss +136 -136
  78. package/assets/sass/main.scss +7 -7
  79. package/assets/svg/icons.svg +598 -598
  80. package/assets/svg/logo.svg +49 -43
  81. package/assets/ts/main.ts +68 -68
  82. package/assets/ts/modules/accordion.ts +44 -43
  83. package/assets/ts/modules/alert.ts +58 -0
  84. package/assets/ts/modules/carousel.ts +103 -0
  85. package/assets/ts/modules/chart.ts +219 -0
  86. package/assets/ts/modules/drawer.ts +17 -0
  87. package/assets/ts/modules/file-upload.ts +49 -0
  88. package/assets/ts/modules/form.ts +169 -0
  89. package/assets/ts/modules/helpers.ts +120 -0
  90. package/assets/ts/modules/modal.ts +91 -0
  91. package/assets/ts/modules/nav.ts +29 -0
  92. package/assets/ts/modules/orderablelist.ts +123 -0
  93. package/assets/ts/modules/table.ts +586 -0
  94. package/assets/ts/modules/testimonial.ts +84 -0
  95. package/assets/ts/modules/youtubevideo.ts +146 -0
  96. package/dist/components.es.js +493 -509
  97. package/dist/components.umd.js +15 -15
  98. package/package.json +109 -108
  99. package/src/components/Accordion/Accordion.spec.js +63 -63
  100. package/src/components/Accordion/Accordion.vue +22 -22
  101. package/src/components/Accordion/AccordionItem.vue +52 -52
  102. package/src/components/Accordion/README.md +34 -34
  103. package/src/components/Alert/Alert.spec.js +49 -49
  104. package/src/components/Alert/Alert.vue +39 -39
  105. package/src/components/Alert/README.md +28 -28
  106. package/src/components/Banner/Banner.spec.js +28 -28
  107. package/src/components/Banner/Banner.vue +38 -38
  108. package/src/components/Banner/README.md +23 -23
  109. package/src/{elements → components}/Card/Card.vue +122 -122
  110. package/src/{elements/FileUploads → components/Card}/README.md +24 -24
  111. package/src/components/CardDeck/CardDeck.spec.js +99 -99
  112. package/src/components/CardDeck/CardDeck.vue +77 -77
  113. package/src/components/CardDeck/README.md +24 -24
  114. package/src/components/Carousel/Carousel.spec.js +45 -45
  115. package/src/components/Carousel/Carousel.vue +85 -85
  116. package/src/components/Carousel/README.md +19 -19
  117. package/src/components/Chart/Chart.spec.js +201 -201
  118. package/src/components/Chart/Chart.vue +88 -88
  119. package/src/components/Chart/README.md +17 -17
  120. package/src/components/Drawer/Drawer.vue +53 -53
  121. package/src/components/Drawer/README.md +22 -22
  122. package/src/{elements → components}/FileUploads/FileUploads.vue +48 -48
  123. package/src/{elements/Card → components/FileUploads}/README.md +24 -24
  124. package/src/components/Header/Header.spec.js +33 -33
  125. package/src/components/Header/Header.vue +38 -38
  126. package/src/components/Header/README.md +27 -27
  127. package/src/{elements → components}/Input/Input.vue +272 -272
  128. package/src/{elements → components}/Input/README.md +19 -19
  129. package/src/components/Modal/Modal.spec.js +22 -22
  130. package/src/components/Modal/Modal.vue +43 -43
  131. package/src/components/Modal/README.md +19 -19
  132. package/src/components/Nav/Nav.spec.js +35 -35
  133. package/src/components/Nav/Nav.vue +215 -215
  134. package/src/components/Nav/README.md +22 -22
  135. package/src/components/NoteFeed/NoteFeed.vue +79 -79
  136. package/src/components/NoteFeed/README.md +16 -16
  137. package/src/components/PropertySearchbar/PropertySearchbar.vue +204 -204
  138. package/src/components/PropertySearchbar/README.md +25 -25
  139. package/src/components/Snapshot/README.md +20 -20
  140. package/src/components/Snapshot/Snapshot.vue +32 -32
  141. package/src/components/Stepper/README.md +32 -32
  142. package/src/components/Stepper/Step.vue +28 -28
  143. package/src/components/Stepper/Stepper.spec.js +99 -99
  144. package/src/components/Stepper/Stepper.vue +33 -33
  145. package/src/{elements → components}/Table/README.md +62 -62
  146. package/src/{elements → components}/Table/Table.spec.js +90 -90
  147. package/src/{elements → components}/Table/Table.vue +129 -129
  148. package/src/components/Tabs/README.md +27 -27
  149. package/src/components/Tabs/Tab.vue +32 -32
  150. package/src/components/Tabs/Tabs.vue +77 -77
  151. package/src/components/Testimonial/README.md +25 -25
  152. package/src/components/Testimonial/Testimonial.spec.js +57 -57
  153. package/src/components/Testimonial/Testimonial.vue +60 -60
  154. package/src/components/Timeline/README.md +18 -18
  155. package/src/components/Timeline/Timeline.spec.js +17 -17
  156. package/src/components/Timeline/Timeline.vue +24 -24
  157. package/src/foundations/Icon/Icon.spec.js +24 -24
  158. package/src/foundations/Icon/Icon.vue +24 -24
  159. package/src/foundations/Icon/README.md +11 -11
  160. package/src/foundations/Logo/Logo.spec.js +56 -56
  161. package/src/foundations/Logo/Logo.vue +39 -39
  162. package/src/foundations/Logo/README.md +20 -20
  163. package/src/foundations/YoutubeVideo/README.md +11 -11
  164. package/src/foundations/YoutubeVideo/YoutubeVideo.vue +24 -24
  165. package/src/helpers/strings.js +12 -12
  166. package/src/index.js +27 -27
  167. package/src/vue-shim.d.ts +6 -6
  168. package/assets/css/email.min.css +0 -1
  169. package/assets/css/email.min.css.map +0 -1
  170. package/assets/css/error.min.css +0 -1
  171. package/assets/css/error.min.css.map +0 -1
  172. package/assets/ts/main.js +0 -57
  173. package/assets/ts/main.js.map +0 -1
  174. package/assets/ts/modules/accordion.js +0 -33
  175. package/assets/ts/modules/accordion.js.map +0 -1
  176. package/src/components/Accordion/Accordion.screenshot.vue +0 -57
  177. package/src/components/Accordion/__screenshots__/win32/laptop/Accordion.png +0 -0
  178. package/src/components/Accordion/__screenshots__/win32/mobile/Accordion.png +0 -0
  179. package/src/components/Accordion/__screenshots__/win32/tablet/Accordion.png +0 -0
@@ -1,87 +1,87 @@
1
- @use "../_func" as *;
2
-
3
- .tabs__container {
4
-
5
- position: relative;
6
-
7
- .tab__input {
8
- position: absolute;
9
- top: 0;
10
- left: 0;
11
- opacity: 0;
12
- }
13
-
14
- > .tabs__links {
15
- margin-bottom: 1.5rem;
16
- overflow: hidden;
17
-
18
- .link:not(.text-decoration-none):not(.btn) {
19
- --is-current: 0;
20
- font-weight: bold;
21
- font-family: var(--font-heading);
22
- font-size: rem(18);
23
- cursor: pointer;
24
- margin: 0 0 0.5rem 0;
25
- float: left;
26
- clear: both;
27
-
28
- @include media-breakpoint-up(sm) {
29
- clear: none;
30
- margin-bottom: 0;
31
- margin-right: 2rem;
32
- }
33
-
34
- &:before {
35
- width: 0;
36
- width: calc(var(--is-current) * 100%);
37
- }
38
-
39
- &:hover:before,
40
- &:focus:before {
41
- width: 100%;
42
- }
43
- }
44
- }
45
-
46
- .tab {
47
- display: none;
48
- }
49
-
50
- input:focus-visible ~ .tabs__links {
51
- outline: blue outset 1px;
52
- }
53
-
54
- @for $i from 1 through 10 {
55
- input:checked:nth-child(#{$i}) ~ .tabs__links .link:not(.text-decoration-none):not(.btn):nth-child(#{$i}) {
56
-
57
- --is-current: 1;
58
- --panel-tab-colour: white;
59
- --panel-tab-border: var(--colour-secondary)
60
- }
61
- input:checked:nth-child(#{$i}) ~ .tabs > .tab:nth-child(#{$i}){
62
- display: block;
63
- display: contents;
64
- }
65
- }
66
- }
67
-
68
- // #region admin panel
69
- .admin-panel > .tabs__container:first-child {
70
-
71
- display: contents;
72
-
73
- > .tabs {
74
- display: contents;
75
- }
76
-
77
- > .tabs__links {
78
-
79
- padding-bottom: 0;
80
-
81
- .link:not(.text-decoration-none):not(.btn) {
82
-
83
- margin-bottom: 0;
84
- }
85
- }
86
- }
87
- // #endregion
1
+ @use "../_func" as *;
2
+
3
+ .tabs__container {
4
+
5
+ position: relative;
6
+
7
+ .tab__input {
8
+ position: absolute;
9
+ top: 0;
10
+ left: 0;
11
+ opacity: 0;
12
+ }
13
+
14
+ > .tabs__links {
15
+ margin-bottom: 1.5rem;
16
+ overflow: hidden;
17
+
18
+ .link:not(.text-decoration-none):not(.btn) {
19
+ --is-current: 0;
20
+ font-weight: bold;
21
+ font-family: var(--font-heading);
22
+ font-size: rem(18);
23
+ cursor: pointer;
24
+ margin: 0 0 0.5rem 0;
25
+ float: left;
26
+ clear: both;
27
+
28
+ @include media-breakpoint-up(sm) {
29
+ clear: none;
30
+ margin-bottom: 0;
31
+ margin-right: 2rem;
32
+ }
33
+
34
+ &:before {
35
+ width: 0;
36
+ width: calc(var(--is-current) * 100%);
37
+ }
38
+
39
+ &:hover:before,
40
+ &:focus:before {
41
+ width: 100%;
42
+ }
43
+ }
44
+ }
45
+
46
+ .tab {
47
+ display: none;
48
+ }
49
+
50
+ input:focus-visible ~ .tabs__links {
51
+ outline: blue outset 1px;
52
+ }
53
+
54
+ @for $i from 1 through 10 {
55
+ input:checked:nth-child(#{$i}) ~ .tabs__links .link:not(.text-decoration-none):not(.btn):nth-child(#{$i}) {
56
+
57
+ --is-current: 1;
58
+ --panel-tab-colour: white;
59
+ --panel-tab-border: var(--colour-secondary)
60
+ }
61
+ input:checked:nth-child(#{$i}) ~ .tabs > .tab:nth-child(#{$i}){
62
+ display: block;
63
+ display: contents;
64
+ }
65
+ }
66
+ }
67
+
68
+ // #region admin panel
69
+ .admin-panel > .tabs__container:first-child {
70
+
71
+ display: contents;
72
+
73
+ > .tabs {
74
+ display: contents;
75
+ }
76
+
77
+ > .tabs__links {
78
+
79
+ padding-bottom: 0;
80
+
81
+ .link:not(.text-decoration-none):not(.btn) {
82
+
83
+ margin-bottom: 0;
84
+ }
85
+ }
86
+ }
87
+ // #endregion
@@ -1,133 +1,133 @@
1
- @use "../_func" as *;
2
-
3
- .testimonial {
4
-
5
- --testimonial-padding: 1rem;
6
- --testimonial-spacing: 1rem;
7
-
8
- @include media-breakpoint-up(md) {
9
- --testimonial-padding: 4rem;
10
- --testimonial-spacing: 2rem;
11
- }
12
-
13
- // Circle
14
- > div:first-child {
15
-
16
- position: relative;
17
- overflow: hidden;
18
- }
19
-
20
- .circle {
21
- color: currentColor;
22
- position: absolute;
23
- top: -18rem;
24
- right: -8rem;
25
- font-size: 28rem;
26
- border-width: 4px;
27
- }
28
-
29
- &__images {
30
- overflow: auto;
31
- scroll-snap-type: x mandatory;
32
- display: flex;
33
- user-select: none;
34
- touch-action: pan-x;
35
- height: rem(230);
36
-
37
- @include media-breakpoint-up(sm) {
38
-
39
- height: rem(340);
40
- }
41
- @include media-breakpoint-up(md) {
42
-
43
- min-height: 100%;
44
- scroll-snap-type: y mandatory;
45
- flex-direction: column;
46
- touch-action: pan-y;
47
- }
48
-
49
- img {
50
-
51
- scroll-snap-align: start;
52
- user-select: none;
53
- pointer-events: none;
54
- flex-shrink: 0;
55
- }
56
- }
57
-
58
- .testimonial__controls {
59
- display: none;
60
- }
61
-
62
- &.testimonial--multi .testimonial__controls {
63
- display: block;
64
- position: absolute;
65
- bottom: 0;
66
- left: 50%;
67
- transform: translate(-50%, 50%);
68
-
69
- @include media-breakpoint-up(md) {
70
- left: auto;
71
- bottom: auto;
72
- right: 0;
73
- top: 50%;
74
- transform: rotate(90deg) translate(0,-120%);
75
- transform-origin: center;
76
- }
77
- }
78
-
79
- // Make space for the circle
80
- h2 {
81
- padding: 2rem var(--testimonial-padding) 0 var(--testimonial-padding);
82
-
83
- @include media-breakpoint-up(sm) {
84
- padding-top: 3rem;
85
- }
86
- @include media-breakpoint-up(md) {
87
- padding-top: 9rem;
88
- }
89
- }
90
-
91
- &__content {
92
-
93
- --display-none: none;
94
- margin: 0 var(--testimonial-padding) var(--testimonial-spacing) var(--testimonial-padding);
95
- position: relative;
96
-
97
- @include media-breakpoint-up(md) {
98
- --display-none: block;
99
-
100
- blockquote:not(.largest) {
101
- position: absolute;
102
- top: 0;
103
- }
104
- }
105
- }
106
-
107
- // Only show 1 blockquote at a time
108
- @for $i from 1 through 10 {
109
-
110
- &[data-show="#{$i}"] blockquote:not(:nth-child(#{$i})) {
111
- display: var(--display-none);
112
- opacity: 0;
113
- user-select: none;
114
- pointer-events: none;
115
- }
116
- }
117
-
118
- &__after {
119
-
120
- padding: 1rem var(--testimonial-padding) var(--testimonial-spacing) var(--testimonial-padding);
121
- }
122
- }
123
-
124
- /* Hide scrollbar for Chrome, Safari and Opera */
125
- .testimonial__images::-webkit-scrollbar {
126
- display: none;
127
- }
128
-
129
- /* Hide scrollbar for IE, Edge and Firefox */
130
- .testimonial__images {
131
- -ms-overflow-style: none; /* IE and Edge */
132
- scrollbar-width: none; /* Firefox */
1
+ @use "../_func" as *;
2
+
3
+ .testimonial {
4
+
5
+ --testimonial-padding: 1rem;
6
+ --testimonial-spacing: 1rem;
7
+
8
+ @include media-breakpoint-up(md) {
9
+ --testimonial-padding: 4rem;
10
+ --testimonial-spacing: 2rem;
11
+ }
12
+
13
+ // Circle
14
+ > div:first-child {
15
+
16
+ position: relative;
17
+ overflow: hidden;
18
+ }
19
+
20
+ .circle {
21
+ color: currentColor;
22
+ position: absolute;
23
+ top: -18rem;
24
+ right: -8rem;
25
+ font-size: 28rem;
26
+ border-width: 4px;
27
+ }
28
+
29
+ &__images {
30
+ overflow: auto;
31
+ scroll-snap-type: x mandatory;
32
+ display: flex;
33
+ user-select: none;
34
+ touch-action: pan-x;
35
+ height: rem(230);
36
+
37
+ @include media-breakpoint-up(sm) {
38
+
39
+ height: rem(340);
40
+ }
41
+ @include media-breakpoint-up(md) {
42
+
43
+ min-height: 100%;
44
+ scroll-snap-type: y mandatory;
45
+ flex-direction: column;
46
+ touch-action: pan-y;
47
+ }
48
+
49
+ img {
50
+
51
+ scroll-snap-align: start;
52
+ user-select: none;
53
+ pointer-events: none;
54
+ flex-shrink: 0;
55
+ }
56
+ }
57
+
58
+ .testimonial__controls {
59
+ display: none;
60
+ }
61
+
62
+ &.testimonial--multi .testimonial__controls {
63
+ display: block;
64
+ position: absolute;
65
+ bottom: 0;
66
+ left: 50%;
67
+ transform: translate(-50%, 50%);
68
+
69
+ @include media-breakpoint-up(md) {
70
+ left: auto;
71
+ bottom: auto;
72
+ right: 0;
73
+ top: 50%;
74
+ transform: rotate(90deg) translate(0,-120%);
75
+ transform-origin: center;
76
+ }
77
+ }
78
+
79
+ // Make space for the circle
80
+ h2 {
81
+ padding: 2rem var(--testimonial-padding) 0 var(--testimonial-padding);
82
+
83
+ @include media-breakpoint-up(sm) {
84
+ padding-top: 3rem;
85
+ }
86
+ @include media-breakpoint-up(md) {
87
+ padding-top: 9rem;
88
+ }
89
+ }
90
+
91
+ &__content {
92
+
93
+ --display-none: none;
94
+ margin: 0 var(--testimonial-padding) var(--testimonial-spacing) var(--testimonial-padding);
95
+ position: relative;
96
+
97
+ @include media-breakpoint-up(md) {
98
+ --display-none: block;
99
+
100
+ blockquote:not(.largest) {
101
+ position: absolute;
102
+ top: 0;
103
+ }
104
+ }
105
+ }
106
+
107
+ // Only show 1 blockquote at a time
108
+ @for $i from 1 through 10 {
109
+
110
+ &[data-show="#{$i}"] blockquote:not(:nth-child(#{$i})) {
111
+ display: var(--display-none);
112
+ opacity: 0;
113
+ user-select: none;
114
+ pointer-events: none;
115
+ }
116
+ }
117
+
118
+ &__after {
119
+
120
+ padding: 1rem var(--testimonial-padding) var(--testimonial-spacing) var(--testimonial-padding);
121
+ }
122
+ }
123
+
124
+ /* Hide scrollbar for Chrome, Safari and Opera */
125
+ .testimonial__images::-webkit-scrollbar {
126
+ display: none;
127
+ }
128
+
129
+ /* Hide scrollbar for IE, Edge and Firefox */
130
+ .testimonial__images {
131
+ -ms-overflow-style: none; /* IE and Edge */
132
+ scrollbar-width: none; /* Firefox */
133
133
  }
@@ -1,96 +1,96 @@
1
- @use "sass:math";
2
- @use "../_func" as *;
3
-
4
- .timeline {
5
-
6
- --breakpoint:(100% - #{rem(992)});
7
- --pl: clamp(0rem, var(--breakpoint) * -1000, 4rem);
8
- --line-pos: clamp(1rem, var(--breakpoint) * 1000, 50%);
9
- --circle-pos: 1rem;
10
- --line-length: 100%;
11
- --img-order: 1;
12
-
13
-
14
- position: relative;
15
- padding-top: rem(4);
16
- padding-left: var(--pl);
17
- padding-bottom: 1rem;
18
- width: 100%;
19
- display: flex;
20
- justify-content: space-between;
21
- flex-direction: row;
22
- flex-wrap: wrap;
23
- align-items: flex-start;
24
-
25
- .timeline__container:not(.timeline--simple) & {
26
-
27
- align-items: center;
28
-
29
- @include media-breakpoint-up(md) {
30
- --img-order: 0;
31
- --circle-pos: 50%;
32
- --line-length: 50%;
33
- }
34
- }
35
-
36
- &:before {
37
- content: " ";
38
- display: block;
39
- background: black;
40
- width: 4px;
41
- height: 100%;
42
- position: absolute;
43
- top: 0;
44
- left: var(--line-pos);
45
- }
46
-
47
- &:after {
48
- content: " ";
49
- display: block;
50
- background: white;
51
- width: 2rem;
52
- height: 2rem;
53
- margin-top: -1rem;
54
- position: absolute;
55
- top: var(--circle-pos);
56
- left: var(--line-pos);
57
- margin-left: calc(-1rem + 2px);
58
- border: 4px solid black;
59
- border-radius: 50%;
60
- }
61
-
62
- > * {
63
- max-width: rem(math.div(1320,2) - 96);
64
- order: 1;
65
- }
66
-
67
- > img {
68
- max-width: min(100%, #{rem(math.div(1320,2) - 96)});
69
- margin-bottom: 2rem;
70
- }
71
-
72
- &:nth-child(even) > img {
73
- order: var(--img-order);
74
- }
75
-
76
- &:first-child {
77
-
78
- &:before {
79
- top: var(--circle-pos);
80
- height: var(--line-length);
81
- }
82
- }
83
-
84
- &:last-child {
85
- padding-bottom: 0;
86
- margin-bottom: 2rem;
87
-
88
- &:before {
89
- height: var(--line-length);
90
- }
91
-
92
- > img {
93
- margin-bottom: 0;
94
- }
95
- }
1
+ @use "sass:math";
2
+ @use "../_func" as *;
3
+
4
+ .timeline {
5
+
6
+ --breakpoint:(100% - #{rem(992)});
7
+ --pl: clamp(0rem, var(--breakpoint) * -1000, 4rem);
8
+ --line-pos: clamp(1rem, var(--breakpoint) * 1000, 50%);
9
+ --circle-pos: 1rem;
10
+ --line-length: 100%;
11
+ --img-order: 1;
12
+
13
+
14
+ position: relative;
15
+ padding-top: rem(4);
16
+ padding-left: var(--pl);
17
+ padding-bottom: 1rem;
18
+ width: 100%;
19
+ display: flex;
20
+ justify-content: space-between;
21
+ flex-direction: row;
22
+ flex-wrap: wrap;
23
+ align-items: flex-start;
24
+
25
+ .timeline__container:not(.timeline--simple) & {
26
+
27
+ align-items: center;
28
+
29
+ @include media-breakpoint-up(md) {
30
+ --img-order: 0;
31
+ --circle-pos: 50%;
32
+ --line-length: 50%;
33
+ }
34
+ }
35
+
36
+ &:before {
37
+ content: " ";
38
+ display: block;
39
+ background: black;
40
+ width: 4px;
41
+ height: 100%;
42
+ position: absolute;
43
+ top: 0;
44
+ left: var(--line-pos);
45
+ }
46
+
47
+ &:after {
48
+ content: " ";
49
+ display: block;
50
+ background: white;
51
+ width: 2rem;
52
+ height: 2rem;
53
+ margin-top: -1rem;
54
+ position: absolute;
55
+ top: var(--circle-pos);
56
+ left: var(--line-pos);
57
+ margin-left: calc(-1rem + 2px);
58
+ border: 4px solid black;
59
+ border-radius: 50%;
60
+ }
61
+
62
+ > * {
63
+ max-width: rem(math.div(1320,2) - 96);
64
+ order: 1;
65
+ }
66
+
67
+ > img {
68
+ max-width: min(100%, #{rem(math.div(1320,2) - 96)});
69
+ margin-bottom: 2rem;
70
+ }
71
+
72
+ &:nth-child(even) > img {
73
+ order: var(--img-order);
74
+ }
75
+
76
+ &:first-child {
77
+
78
+ &:before {
79
+ top: var(--circle-pos);
80
+ height: var(--line-length);
81
+ }
82
+ }
83
+
84
+ &:last-child {
85
+ padding-bottom: 0;
86
+ margin-bottom: 2rem;
87
+
88
+ &:before {
89
+ height: var(--line-length);
90
+ }
91
+
92
+ > img {
93
+ margin-bottom: 0;
94
+ }
95
+ }
96
96
  }