barbican-reset 1.3.8 → 1.4.2

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.
@@ -1,5 +1,11 @@
1
1
  <template>
2
2
  <div :class="styleComponent">
3
+ <div v-if="type === 'concert'" :class="$style.icon">
4
+ <div :class="[`btn btn-secondary`, { hero }]">
5
+ <template v-if="hero">Live event</template>
6
+ <live-icon :class="$style.svg" />
7
+ </div>
8
+ </div>
3
9
  <img :class="$style.image" :src="image">
4
10
  <div v-if="expired" :class="$style.title">
5
11
  <h4>Expired</h4>
@@ -8,8 +14,10 @@
8
14
  </template>
9
15
 
10
16
  <script>
17
+ import { LiveIcon } from 'barbican-reset/icons/stream'
11
18
  export default {
12
19
  name: "CardDisplay",
20
+ components: { LiveIcon },
13
21
  props: {
14
22
  image: {
15
23
  type: String,
@@ -22,7 +30,11 @@ export default {
22
30
  hero: {
23
31
  type: Boolean,
24
32
  default: false,
25
- }
33
+ },
34
+ type: {
35
+ type: String,
36
+ default: 'concert',
37
+ },
26
38
  },
27
39
  computed: {
28
40
  styleComponent() {
@@ -31,35 +43,74 @@ export default {
31
43
  if (this.hero) { output.push(style.hero); }
32
44
  return output;
33
45
  },
46
+ styleButton() {
47
+ const style = this.$style;
48
+ let output = [style.button];
49
+ if (this.hero) { output.push(style.hero); }
50
+ return output;
51
+ }
34
52
  }
35
53
  }
36
54
  </script>
37
55
 
56
+ <style lang="scss" scoped>
57
+
58
+ .btn.btn-secondary {
59
+ &:not(.hero) {
60
+ border-radius: 50%;
61
+ padding: 0.5rem;
62
+ }
63
+
64
+ &.hero {
65
+ align-items: center;
66
+ padding: 0.75rem;
67
+ display: flex;
68
+ gap: 0.5rem;
69
+ }
70
+ }
71
+
72
+ </style>
73
+
38
74
  <style lang="scss" module>
39
75
 
76
+ .svg {
77
+ fill: white;
78
+ }
79
+
40
80
  .component {
41
81
  padding-top: 56.25%;
42
82
  position: relative;
43
83
  overflow: hidden;
44
84
  color: $white;
85
+ }
45
86
 
46
- .image {
47
- position: absolute;
48
- height: auto;
49
- width: 100%;
50
- inset: 0;
51
- }
87
+ .icon {
88
+ position: absolute;
89
+ right: 1rem;
90
+ top: 1rem;
91
+ }
52
92
 
53
- .title {
54
- background-color: rgba($c-grey-midnight, 0.85);
55
- place-items: center;
56
- position: absolute;
57
- display: grid;
58
- inset: 0;
59
- }
93
+ .image {
94
+ position: absolute;
95
+ height: auto;
96
+ width: 100%;
97
+ inset: 0;
98
+ }
99
+
100
+ .title {
101
+ background-color: rgba($c-grey-midnight, 0.85);
102
+ place-items: center;
103
+ position: absolute;
104
+ display: grid;
105
+ inset: 0;
60
106
  }
61
107
 
62
108
  .component.hero {
109
+ .icon {
110
+ right: 1.5rem;
111
+ top: 1.5rem;
112
+ }
113
+
63
114
  .title {
64
115
  h4 {
65
116
  font-size: $h2-font-size;
@@ -0,0 +1,37 @@
1
+ <template>
2
+ <div>
3
+ <svg :class="$style.logo" role="presentation">
4
+ <slot />
5
+ </svg>
6
+ <div :class="$style.label">{{ label }}</div>
7
+ </div>
8
+ </template>
9
+
10
+ <script>
11
+ export default {
12
+ name: 'PaymentLogo',
13
+ props: {
14
+ label: {
15
+ type: String,
16
+ default: 'visa'
17
+ }
18
+ }
19
+ }
20
+ </script>
21
+
22
+ <style lang="scss" module>
23
+
24
+ .label {
25
+ @include hide-text;
26
+ text-transform: uppercase;
27
+ height: 0;
28
+ width: 0;
29
+ }
30
+
31
+ .logo {
32
+ display: block;
33
+ height: 2.5rem;
34
+ width: 4rem;
35
+ }
36
+
37
+ </style>
@@ -17,15 +17,17 @@ export default {
17
17
  margin-left: auto;
18
18
  max-width: 20rem;
19
19
 
20
+ @include media-breakpoint-down(md) {
21
+ .card + .card {
22
+ margin-top: 1.25rem;
23
+ }
24
+ }
25
+
20
26
  @include media-breakpoint-up(md) {
21
27
  grid-template-columns: repeat(3, 1fr);
22
28
  column-gap: 1.25rem;
23
29
  max-width: 60rem;
24
30
  display: grid;
25
-
26
- .card {
27
- margin-bottom: 0;
28
- }
29
31
  }
30
32
  }
31
33
 
@@ -0,0 +1,78 @@
1
+ <template>
2
+
3
+ <div>
4
+
5
+ <fluid-iframe v-if="data.type === 'jwplayer'" :src="data.url" />
6
+
7
+ <template v-if="data.type === 'brightcove'">
8
+
9
+ <div v-html="data.markup" :class="$style.brightcove"></div>
10
+
11
+ <alert v-if="data.isExpired" error center inline>Event has passed.</alert>
12
+
13
+ </template>
14
+
15
+ <h2 v-html="data.title" class="margin-bottom-1"></h2>
16
+
17
+ <p v-html="data.lead_description"></p>
18
+
19
+ <template v-if="data.long_description">
20
+
21
+ <p v-html="data.long_description"></p>
22
+
23
+ </template>
24
+
25
+ <template v-if="data.expires">
26
+
27
+ <p>Until {{ formatDateTime(data.expires) }}</p>
28
+
29
+ </template>
30
+
31
+ <template v-if="data.programme">
32
+
33
+ <p>Read tonight's <a :href="data.programme" target="_blank">Digital Programme</a></p>
34
+
35
+ </template>
36
+
37
+ </div>
38
+
39
+ </template>
40
+
41
+ <script>
42
+ import { FluidIframe, Alert } from 'barbican-reset'
43
+ export default {
44
+ props: {
45
+ data: {
46
+ type: Object
47
+ },
48
+ concert: {
49
+ type: Boolean,
50
+ default: false,
51
+ }
52
+ },
53
+ created() {
54
+ if (this.concert) {
55
+ this.data.expires = this.data.brightcove.expires;
56
+ this.data.markup = this.data.brightcove.markup;
57
+ this.data.script = this.data.brightcove.script;
58
+ this.data.isExpired = this.data.brightcove.isExpired;
59
+ }
60
+ },
61
+ components: { FluidIframe, Alert },
62
+ methods: {
63
+ formatDateTime(date) {
64
+ return this.$moment(date).format("LT ddd D MMM YYYY");
65
+ }
66
+ }
67
+ }
68
+ </script>
69
+
70
+ <style lang="scss" module>
71
+
72
+ .brightcove {
73
+ border-radius: $border-radius-lg;
74
+ margin-bottom: 2rem;
75
+ overflow: hidden;
76
+ }
77
+
78
+ </style>
@@ -197,11 +197,22 @@
197
197
  }
198
198
  }
199
199
 
200
+ @mixin btn-remove-gift {
201
+ @include media-breakpoint-down(xl) {
202
+ @include btn-remove;
203
+ width: 100%;
204
+ }
205
+ @include media-breakpoint-up(xl) {
206
+ @include btn-link;
207
+ }
208
+ }
209
+
200
210
  @mixin btn-membership-card {
201
211
  @include button-outline(
202
212
  $color: $white,
203
213
  $background: transparent
204
214
  );
215
+
205
216
  @include focus {
206
217
  &.member {
207
218
  color: $c-member;
@@ -226,6 +237,28 @@
226
237
  fill: $white;
227
238
  }
228
239
 
240
+ @mixin btn-carousel {
241
+ @include button-solid($c-grey-night);
242
+ @include single-box($white);
243
+ border-radius: 50%;
244
+ font-size: 0;
245
+ fill: $white;
246
+
247
+ @include media-breakpoint-down(lg) {
248
+ padding: 0.75rem;
249
+ }
250
+
251
+ &:disabled {
252
+ background-color: $c-grey-pearl;
253
+ border-color: $c-grey-pearl;
254
+ opacity: 1;
255
+ }
256
+
257
+ label {
258
+ visibility: hidden;
259
+ }
260
+ }
261
+
229
262
  @mixin btn-invisible {
230
263
  &, &:focus {
231
264
  background: transparent;
@@ -1,5 +1,5 @@
1
1
  // paths more explicit for gulp-sass
2
2
  @import "colors/index.scss";
3
- @import "layout/index.scss";
3
+ @import "layout.scss";
4
4
  @import "breakpoints.scss";
5
5
  @import "typography.scss";
package/icons/arrow.vue CHANGED
@@ -1,9 +1,5 @@
1
1
  <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- viewBox="0 0 83.2 80.9"
5
- height="12"
6
- width="12">
2
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 83.2 80.9" height="12" width="12">
7
3
  <path fill="white" d="M42.8.4L31.9 11.2l23.7 22.2H0V48h55.6l-24 21.6 11.2 11.3 40.4-40.7z"></path>
8
4
  </svg>
9
5
  </template>
@@ -0,0 +1,11 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24">
3
+ <path d="M17.51 3.87L15.73 2.1 5.84 12l9.9 9.9 1.77-1.77L9.38 12l8.13-8.13z"/>
4
+ </svg>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: 'ArrowBack'
10
+ }
11
+ </script>
@@ -0,0 +1,11 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24">
3
+ <polygon points="6.23,20.23 8,22 18,12 8,2 6.23,3.77 14.46,12"/>
4
+ </svg>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: 'ArrowForward'
10
+ }
11
+ </script>
package/icons/index.js CHANGED
@@ -4,6 +4,8 @@ import CityOfLondonLockup from './city_of_london_lockup'
4
4
  import ArrowIcon from './arrow'
5
5
  import BackArrow from './back_arrow'
6
6
  import CartIcon from './cart'
7
+ import ArrowBack from './arrow_back'
8
+ import ArrowForward from './arrow_forward'
7
9
 
8
10
  export {
9
11
  BarbicanLogo,
@@ -11,5 +13,7 @@ export {
11
13
  CityOfLondonLockup,
12
14
  ArrowIcon,
13
15
  BackArrow,
14
- CartIcon
16
+ CartIcon,
17
+ ArrowBack,
18
+ ArrowForward
15
19
  };
@@ -1,106 +1,11 @@
1
1
  <template>
2
- <div class="live-icon__container">
3
- <div class="live-icon__title">Live event</div>
4
- <svg
5
- class="live-icon__svg"
6
- :class="{ animate: animate }"
7
- xmlns="http://www.w3.org/2000/svg"
8
- viewBox="0 0 14 15"
9
- >
10
- <path
11
- class="big-echo"
12
- d="M14,7.5c0-2.8-1.1-5.3-2.9-7.1l-1,1.1c1.5,1.5,2.5,3.7,2.5,6s-1,4.5-2.5,6l1.1,1.1 C12.9,12.8,14,10.3,14,7.5z"
13
- />
14
- <path
15
- class="small-echo"
16
- d="M8.6,7.5C8.6,9,8,10.4,7,11.4l1,1.1c1.3-1.3,2-3,2-5S9.2,3.8,8,2.6l-1.1,1C7.9,4.6,8.6,6,8.6,7.5z"
17
- />
18
- <path
19
- class="echo-ball"
20
- d="M6,7.5c0,1.7-1.3,3-3,3s-3-1.3-3-3s1.3-3,3-3S6,5.8,6,7.5z"
21
- />
22
- </svg>
23
- </div>
2
+ <svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24">
3
+ <path d="M7.76,16.24C6.67,15.16,6,13.66,6,12s0.67-3.16,1.76-4.24l1.42,1.42C8.45,9.9,8,10.9,8,12c0,1.1,0.45,2.1,1.17,2.83 L7.76,16.24z M16.24,16.24C17.33,15.16,18,13.66,18,12s-0.67-3.16-1.76-4.24l-1.42,1.42C15.55,9.9,16,10.9,16,12 c0,1.1-0.45,2.1-1.17,2.83L16.24,16.24z M12,10c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S13.1,10,12,10z M20,12 c0,2.21-0.9,4.21-2.35,5.65l1.42,1.42C20.88,17.26,22,14.76,22,12s-1.12-5.26-2.93-7.07l-1.42,1.42C19.1,7.79,20,9.79,20,12z M6.35,6.35L4.93,4.93C3.12,6.74,2,9.24,2,12s1.12,5.26,2.93,7.07l1.42-1.42C4.9,16.21,4,14.21,4,12S4.9,7.79,6.35,6.35z"/>
4
+ </svg>
24
5
  </template>
25
6
 
26
7
  <script>
27
- import { gsap } from "gsap";
28
8
  export default {
29
- name: "LiveIcon",
30
- props: {
31
- animate: {
32
- type: Boolean,
33
- },
34
- },
35
- methods: {
36
- doAnimate(input) {
37
- if (input) {
38
- let tl = gsap.timeline({ repeat: -1, repeatDelay: 0.5 });
39
- let parent = ".live-icon__svg.animate";
40
- let all = [
41
- `${parent} .echo-ball`,
42
- `${parent} .small-echo`,
43
- `${parent} .big-echo`,
44
- ];
45
- tl.set(all, {
46
- opacity: 0.1,
47
- }).to(all, {
48
- opacity: 1,
49
- stagger: 0.3,
50
- duration: 1,
51
- });
52
- }
53
- },
54
- },
55
- mounted() {
56
- this.doAnimate(this.animate);
57
- },
9
+ name: "LiveIcon"
58
10
  };
59
11
  </script>
60
-
61
- <style lang="scss" scoped>
62
-
63
- .live-icon {
64
- &__container {
65
- background-color: $c-grey-midnight;
66
- border-radius: $border-radius;
67
- font-size: $font-size-sm;
68
- padding: 0.6rem 0.8rem;
69
- border-color: white;
70
- position: absolute;
71
- font-weight: bold;
72
- border: 1px solid;
73
- color: white;
74
- right: 1rem;
75
- top: 1rem;
76
-
77
- @include media-breakpoint-up(sm) {
78
- font-size: $font-size-base;
79
- padding: 0.8rem 1rem;
80
- }
81
-
82
- @include media-breakpoint-up(md) {
83
- right: 2rem;
84
- top: 2rem;
85
- }
86
- }
87
-
88
- &__title {
89
- vertical-align: middle;
90
- display: inline-block;
91
- margin-right: 0.5rem;
92
- }
93
-
94
- &__svg {
95
- vertical-align: middle;
96
- display: inline-block;
97
- height: 1.5rem;
98
- fill: white;
99
-
100
- @include media-breakpoint-up(sm) {
101
- height: 1.75rem;
102
- }
103
- }
104
- }
105
-
106
- </style>
package/index.js CHANGED
@@ -20,6 +20,8 @@ import FooterLogos from './components/footer_logos'
20
20
  import FooterLower from './components/footer_lower'
21
21
  import FluidIframe from './components/fluid_iframe'
22
22
  import HelpRow from './components/help_row'
23
+ import VideoContent from './components/video_content'
24
+ import PaymentLogo from './components/payment_logo'
23
25
 
24
26
  export {
25
27
  Loader,
@@ -43,4 +45,6 @@ export {
43
45
  FluidIframe,
44
46
  HelpRow,
45
47
  CardDisplay,
48
+ VideoContent,
49
+ PaymentLogo
46
50
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "barbican-reset",
3
- "version": "1.3.8",
3
+ "version": "1.4.2",
4
4
  "description": "A collection of useful scss imports and js scripts, that provide consistent styling and functionality across barbican projects.",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/scss/_atomic.scss CHANGED
@@ -1,11 +1,11 @@
1
1
 
2
- $margins: "margin-top", "margin-bottom", "min-height";
2
+ $gaps: "margin-top", "margin-bottom", "min-height", "padding-left", "padding-right";
3
3
  $aligns: "left", "center", "right";
4
4
 
5
- @each $margin in $margins {
5
+ @each $gap in $gaps {
6
6
  @for $i from 1 to 5 {
7
- .#{$margin}-#{$i} {
8
- #{$margin}: 1rem * $i;
7
+ .#{$gap}-#{$i} {
8
+ #{$gap}: 1rem * $i;
9
9
  }
10
10
  }
11
11
  }
@@ -16,16 +16,12 @@ $aligns: "left", "center", "right";
16
16
  }
17
17
  }
18
18
 
19
- .margin-0 {
20
- margin: 0;
19
+ .border-radius-lg {
20
+ border-radius: $border-radius-lg;
21
21
  }
22
22
 
23
- .margin-top-05 {
24
- margin-top: 0.5rem;
25
- }
26
-
27
- .width-100 {
28
- width: 100%;
23
+ .color-orange {
24
+ color: $c-brand-orange;
29
25
  }
30
26
 
31
27
  .font-weight-700 {
@@ -44,12 +40,28 @@ $aligns: "left", "center", "right";
44
40
  font-size: $h3-font-size;
45
41
  }
46
42
 
47
- .c-brand-orange {
48
- color: $c-brand-orange;
49
- }
50
-
51
43
  .list-style-none {
52
44
  list-style-type: none;
53
45
  padding: 0;
54
46
  margin: 0;
47
+ }
48
+
49
+ .margin-0 {
50
+ margin: 0;
51
+ }
52
+
53
+ .margin-top-05 {
54
+ margin-top: 0.5rem;
55
+ }
56
+
57
+ .margin-top-025 {
58
+ margin-top: 0.25rem;
59
+ }
60
+
61
+ .overflow-hidden {
62
+ overflow: hidden;
63
+ }
64
+
65
+ .width-100 {
66
+ width: 100%;
55
67
  }
package/scss/_btn.scss CHANGED
@@ -52,6 +52,10 @@
52
52
  @include btn-remove-ticket;
53
53
  }
54
54
 
55
+ &.btn-remove-gift {
56
+ @include btn-remove-gift;
57
+ }
58
+
55
59
  &.btn-membership-card {
56
60
  @include btn-membership-card;
57
61
  }
@@ -68,6 +72,10 @@
68
72
  @include btn-cta;
69
73
  }
70
74
 
75
+ &.btn-carousel {
76
+ @include btn-carousel;
77
+ }
78
+
71
79
  &.btn-invisible {
72
80
  @include btn-invisible;
73
81
  }
@@ -10,8 +10,8 @@
10
10
  }
11
11
 
12
12
  .card {
13
- margin-bottom: 0;
14
13
  max-width: 20rem;
14
+ margin-top: 0;
15
15
  }
16
16
 
17
17
  .card-title {
@@ -0,0 +1,8 @@
1
+ .custom-select {
2
+ background-color: $c-grey-alpine;
3
+ border-color: $c-grey-concrete;
4
+ border-radius: $border-radius;
5
+ padding: 0.75rem 0.5rem;
6
+ color: $c-grey-night;
7
+ width: 100%;
8
+ }
@@ -0,0 +1,11 @@
1
+ .promo-form {
2
+ @include basket-row-grid;
3
+ margin-top: 0.5rem;
4
+ }
5
+
6
+ .promo-added {
7
+ justify-content: space-between;
8
+ align-items: center;
9
+ display: flex;
10
+ gap: 1rem;
11
+ }
@@ -3,6 +3,10 @@
3
3
  border: 1px solid $c-grey-pearl;
4
4
  overflow: hidden;
5
5
 
6
+ + .card {
7
+ margin-top: 0;
8
+ }
9
+
6
10
  img {
7
11
  max-width: 100%;
8
12
  }
@@ -2,7 +2,6 @@
2
2
  $border: 1px solid $c-grey-pearl;
3
3
 
4
4
  .card[video-help] {
5
- margin-bottom: 0;
6
5
  overflow: hidden;
7
6
  border: $border;
8
7
 
@@ -17,6 +16,10 @@ $border: 1px solid $c-grey-pearl;
17
16
  border-bottom: 0;
18
17
  }
19
18
 
19
+ + .card {
20
+ margin-top: 0;
21
+ }
22
+
20
23
  .card-header {
21
24
  border-radius: 0;
22
25
  border-bottom: 0;
package/scss/index.scss CHANGED
@@ -13,6 +13,7 @@
13
13
  @import "loading-animation.scss";
14
14
  @import "close-icon.scss";
15
15
  @import "table/index.scss";
16
+ @import "promo.scss";
16
17
 
17
18
  // bootstrap component styles
18
19
  @import "btn.scss";
@@ -20,6 +21,7 @@
20
21
  @import "card-group.scss";
21
22
  @import "checkbox.scss";
22
23
  @import "checkbox-group.scss";
24
+ @import "custom-select.scss";
23
25
  @import "form.scss";
24
26
  @import "list.scss";
25
27
  @import "input.scss";
@@ -4,6 +4,7 @@ table.details {
4
4
 
5
5
  thead {
6
6
  background-color: $c-grey-alpine;
7
+ margin-bottom: 1rem;
7
8
  font-weight: 700;
8
9
  display: block;
9
10
 
@@ -29,16 +30,10 @@ table.details {
29
30
  }
30
31
 
31
32
  tbody tr {
32
- border-bottom: 1px solid $c-grey-pearl;
33
- border-right: 1px solid $c-grey-pearl;
34
- border-left: 1px solid $c-grey-pearl;
35
-
36
- @include media-breakpoint-down($mq) {
37
- border-top: 1px solid $c-grey-pearl;
33
+ border: 1px solid $c-grey-pearl;
38
34
 
39
- &:not(:last-of-type) {
40
- margin-bottom: 1rem;
41
- }
35
+ &:not(:last-of-type) {
36
+ margin-bottom: 1rem;
42
37
  }
43
38
  }
44
39
 
@@ -13,12 +13,16 @@ table.etickets {
13
13
  }
14
14
  }
15
15
 
16
- tr {
16
+ thead tr, tbody tr.active {
17
17
  border: 1px solid $c-grey-pearl;
18
18
  display: grid;
19
19
 
20
+ &:not(:last-of-type) {
21
+ margin-bottom: 1rem;
22
+ }
23
+
20
24
  @include media-breakpoint-up($mq) {
21
- grid-template-columns: 9rem auto 9rem;
25
+ grid-template-columns: 10rem auto 8rem;
22
26
  }
23
27
 
24
28
  @include media-breakpoint-down($mq) {
@@ -47,8 +51,4 @@ table.etickets {
47
51
  display: none;
48
52
  }
49
53
  }
50
-
51
- tbody > div:not(:last-of-type) {
52
- margin-bottom: 1rem;
53
- }
54
54
  }
@@ -0,0 +1,56 @@
1
+ table.gifts {
2
+
3
+ $mq: xl;
4
+
5
+ thead {
6
+ @include media-breakpoint-down($mq) {
7
+ display: none;
8
+ }
9
+ }
10
+
11
+ th {
12
+ font-weight: 700;
13
+ }
14
+
15
+ tr {
16
+ @include media-breakpoint-up($mq) {
17
+ @include table-row;
18
+ grid-template-columns: 3fr 5fr 5fr 2fr 2fr;
19
+ display: grid;
20
+ gap: 0.75rem;
21
+
22
+ label {
23
+ display: none;
24
+ }
25
+ }
26
+
27
+ @include media-breakpoint-down($mq) {
28
+ border-radius: $border-radius-lg;
29
+ border: 1px solid $c-grey-pearl;
30
+ display: block;
31
+ padding: 1rem;
32
+
33
+ &:not(:last-of-type) {
34
+ margin-bottom: 1rem;
35
+ }
36
+
37
+ td {
38
+ justify-content: space-between;
39
+ display: flex;
40
+
41
+ &:not(:last-of-type) {
42
+ padding-bottom: 0.25rem;
43
+ padding-top: 0.25rem;
44
+ }
45
+
46
+ &:not(:first-of-type):not(:last-of-type) {
47
+ border-top: 1px solid $c-grey-pearl;
48
+ }
49
+
50
+ &:last-of-type {
51
+ margin-top: 0.5rem;
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
@@ -0,0 +1,6 @@
1
+
2
+ table.details.membership tr {
3
+ @include media-breakpoint-up(md) {
4
+ grid-template-columns: auto 10rem 10rem 8rem;
5
+ }
6
+ }
@@ -13,12 +13,16 @@ table.orders {
13
13
  }
14
14
  }
15
15
 
16
- tr {
16
+ thead tr, tbody tr.active {
17
17
  border: 1px solid $c-grey-pearl;
18
18
  display: grid;
19
19
 
20
+ &:not(:last-of-type) {
21
+ margin-bottom: 1rem;
22
+ }
23
+
20
24
  @include media-breakpoint-up($mq) {
21
- grid-template-columns: 9rem 8rem auto 7rem;
25
+ grid-template-columns: 10rem 8rem auto 8rem;
22
26
  }
23
27
 
24
28
  @include media-breakpoint-down($mq) {
@@ -47,8 +51,4 @@ table.orders {
47
51
  display: none;
48
52
  }
49
53
  }
50
-
51
- tbody > div:not(:last-of-type) {
52
- margin-bottom: 1rem;
53
- }
54
54
  }
@@ -6,6 +6,8 @@
6
6
  @import "details.scss";
7
7
  @import "preferences.scss";
8
8
  @import "etickets.scss";
9
+ @import "membership.scss";
10
+ @import "gifts.scss";
9
11
 
10
12
  table {
11
13
  border-spacing: 0;