barbican-reset 1.6.9 → 1.7.3

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 (55) hide show
  1. package/animations/confirm.js +62 -0
  2. package/animations/index.js +8 -0
  3. package/components/br_container.vue +2 -2
  4. package/components/br_footer/lower.vue +11 -0
  5. package/components/br_footer/upper.vue +17 -0
  6. package/components/br_form_update.vue +2 -22
  7. package/components/footer_logos.vue +1 -0
  8. package/helpers/mixins/_br-alert.scss +99 -0
  9. package/helpers/mixins/_br-footer.scss +27 -0
  10. package/helpers/mixins/_br-form-row.scss +29 -0
  11. package/helpers/mixins/_br-form-update.scss +15 -0
  12. package/helpers/mixins/_card.scss +46 -2
  13. package/helpers/mixins/_city-of-london.scss +12 -0
  14. package/helpers/mixins/_content.scss +3 -3
  15. package/helpers/mixins/_focus.scss +2 -2
  16. package/helpers/mixins/_table.scss +29 -28
  17. package/helpers/mixins/index.scss +5 -2
  18. package/helpers/mixins/input/_generic.scss +3 -2
  19. package/helpers/mixins/input/_text.scss +21 -0
  20. package/helpers/mixins/table/_basket.scss +33 -0
  21. package/{scss → helpers/mixins}/table/_details.scss +2 -3
  22. package/{scss → helpers/mixins}/table/_etickets.scss +2 -2
  23. package/{scss → helpers/mixins}/table/_gifts.scss +2 -2
  24. package/helpers/mixins/table/_membership.scss +8 -0
  25. package/{scss → helpers/mixins}/table/_orders.scss +2 -12
  26. package/{scss → helpers/mixins}/table/_preferences.scss +2 -2
  27. package/{scss → helpers/mixins}/table/_resale.scss +2 -1
  28. package/{scss → helpers/mixins}/table/_section.scss +1 -1
  29. package/{scss → helpers/mixins}/table/_tickets.scss +2 -2
  30. package/helpers/variables/_alerts.scss +7 -0
  31. package/helpers/variables/_layout.scss +3 -6
  32. package/helpers/variables/_typography.scss +0 -4
  33. package/helpers/variables/colors/_brand.scss +1 -0
  34. package/helpers/variables/index.scss +1 -0
  35. package/icons/city_of_london_lockup.vue +2 -20
  36. package/index.js +2 -2
  37. package/package.json +2 -2
  38. package/scss/_br-alert.scss +49 -0
  39. package/scss/_br-footer.scss +8 -0
  40. package/scss/{_form-row.scss → _br-form-row.scss} +1 -25
  41. package/scss/_br-form-update.scss +8 -0
  42. package/scss/_br-wrap.scss +3 -3
  43. package/scss/_city-of-london.scss +4 -0
  44. package/scss/_fonts.scss +20 -22
  45. package/scss/_input.scss +7 -7
  46. package/scss/_list.scss +1 -1
  47. package/scss/_table.scss +25 -0
  48. package/scss/card/index.scss +6 -21
  49. package/scss/index.scss +7 -5
  50. package/components/footer_lower.vue +0 -20
  51. package/components/footer_upper.vue +0 -51
  52. package/scss/_alert.scss +0 -132
  53. package/scss/table/_basket.scss +0 -31
  54. package/scss/table/_membership.scss +0 -6
  55. package/scss/table/index.scss +0 -20
@@ -0,0 +1,62 @@
1
+ import gsap from 'gsap'
2
+ import { DrawSVGPlugin } from 'gsap/DrawSVGPlugin'
3
+
4
+ gsap.registerPlugin(DrawSVGPlugin);
5
+
6
+ const fadeIn = {
7
+ duration: 0.3,
8
+ opacity: 0,
9
+ delay: 0.3,
10
+ };
11
+
12
+ const explode = {
13
+ ease: "power1.out",
14
+ opacity: 0,
15
+ scale: 1.5,
16
+ };
17
+
18
+ const defaults = {
19
+ duration: 0.6,
20
+ ease: "power1.in",
21
+ transformOrigin: "center"
22
+ }
23
+
24
+ export const animateEmail = () => {
25
+ const query = target => document.querySelector(`.card[email] ${target}`);
26
+ const title = query(".card-title");
27
+ const outline = query(".outline");
28
+ const arrow = query(".arrow");
29
+ const fold = query(".fold");
30
+ const tl = gsap.timeline({ defaults });
31
+
32
+ const clone = title.cloneNode(true);
33
+ clone.classList.add("clone");
34
+ title.after(clone);
35
+
36
+ tl.set(arrow, { opacity: 0 })
37
+ .from(title, fadeIn)
38
+ .set(clone, { opacity: 0.4 })
39
+ .from(outline, { drawSVG: "0%" }, "start")
40
+ .from(fold, { drawSVG: "0%", duration: 0.3 }, "start")
41
+ .to(clone, explode, "start")
42
+ .set(arrow, { opacity: 1 })
43
+ .from(arrow, { x: -6, ease: "power1.out" });
44
+ }
45
+
46
+ export const animateDone = () => {
47
+ const query = target => document.querySelector(`.card[done] ${target}`);
48
+ const title = query(".card-title");
49
+ const outline = query(".outline");
50
+ const tick = query(".tick");
51
+ const tl = gsap.timeline({ defaults });
52
+
53
+ const clone = title.cloneNode(true);
54
+ clone.classList.add("clone");
55
+ title.after(clone);
56
+
57
+ tl.from(title, fadeIn)
58
+ .set(clone, { opacity: 0.4 })
59
+ .from(outline, { drawSVG: "0%" }, "start")
60
+ .from(tick, { drawSVG: "0%", duration: 0.3 }, "start+=0.3")
61
+ .to(clone, explode, "start");
62
+ }
@@ -0,0 +1,8 @@
1
+ import { animateEmail, animateDone } from './confirm'
2
+
3
+ export default {
4
+ methods: {
5
+ animateEmail,
6
+ animateDone,
7
+ },
8
+ };
@@ -70,7 +70,7 @@ export default {
70
70
  }
71
71
 
72
72
  .inner {
73
- max-width: $layout-width-wide;
73
+ max-width: $layout-width-lg;
74
74
  margin: 0 auto;
75
75
 
76
76
  &:not(.footer) {
@@ -89,7 +89,7 @@ export default {
89
89
  }
90
90
 
91
91
  &.thin {
92
- max-width: $layout-width-thin;
92
+ max-width: $layout-width-sm;
93
93
  }
94
94
 
95
95
  &.masthead {
@@ -0,0 +1,11 @@
1
+ <template>
2
+ <div class="br-footer-lower">
3
+ <slot />
4
+ </div>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: 'BrFooterLower'
10
+ }
11
+ </script>
@@ -0,0 +1,17 @@
1
+ <template>
2
+ <div :class="[`br-footer-upper`, { splash }]">
3
+ <slot />
4
+ </div>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: 'BrFooterUpper',
10
+ props: {
11
+ splash: {
12
+ type: Boolean,
13
+ default: false
14
+ }
15
+ }
16
+ }
17
+ </script>
@@ -1,6 +1,6 @@
1
1
  <template>
2
- <div :class="$style.container">
3
- <div :class="$style.input" data-test="email"><slot /></div>
2
+ <div class="br-form-update">
3
+ <div class="br-form-update--input" data-test="email"><slot /></div>
4
4
  <b-button @click.prevent="$emit('update')" data-test="update">update</b-button>
5
5
  </div>
6
6
  </template>
@@ -10,23 +10,3 @@
10
10
  name: 'BrFormUpdate',
11
11
  }
12
12
  </script>
13
-
14
- <style lang="scss" module>
15
-
16
- .container {
17
- display: grid;
18
- gap: 1rem;
19
-
20
- @include media-breakpoint-up(sm) {
21
- grid-template-columns: auto 6rem;
22
- }
23
- }
24
-
25
- .input {
26
- @include all-text-inputs;
27
- color: $c-grey-steel;
28
- user-select: none;
29
- overflow: hidden;
30
- }
31
-
32
- </style>
@@ -5,6 +5,7 @@
5
5
  </template>
6
6
 
7
7
  <script>
8
+ // dont think we need this any longer
8
9
  export default {
9
10
  name: 'FooterLogos'
10
11
  }
@@ -0,0 +1,99 @@
1
+
2
+ @mixin br-alert-wrap--setup {
3
+ border-radius: $border-radius-lg;
4
+ border-width: $border-width;
5
+ padding: 0.75rem 0.875rem;
6
+ border-style: solid;
7
+ }
8
+
9
+ @mixin br-alert-wrap--colors($main, $fade, $light) {
10
+ background-color: $fade;
11
+ border-color: $light;
12
+ color: $main;
13
+ }
14
+
15
+ @mixin br-alert-wrap--toggle {
16
+ justify-content: space-between;
17
+ align-items: center;
18
+ display: flex;
19
+ gap: 0.625rem;
20
+
21
+ &.inline {
22
+ display: inline-flex;
23
+ }
24
+ }
25
+
26
+ @mixin br-alert-link($main, $fade) {
27
+ @include focus {
28
+ @include single-box($main);
29
+ background-color: $main;
30
+ color: $fade;
31
+ }
32
+ }
33
+
34
+ @mixin br-alert-exit($main, $fade) {
35
+ path.cross {
36
+ fill: $main;
37
+ }
38
+ path.tint {
39
+ fill: $fade;
40
+ }
41
+
42
+ @include focus {
43
+ outline-color: $main;
44
+
45
+ path.cross {
46
+ fill: $fade;
47
+ }
48
+ path.tint {
49
+ fill: $main;
50
+ }
51
+ }
52
+ }
53
+
54
+ @mixin br-alert--center {
55
+ text-align: center;
56
+
57
+ .wrap {
58
+ justify-content: center;
59
+ }
60
+ }
61
+
62
+ @mixin br-alert--title {
63
+ margin-bottom: 0.25rem;
64
+ font-weight: 700;
65
+ }
66
+
67
+ @mixin br-alert--flex {
68
+ justify-content: space-between;
69
+ display: flex;
70
+ }
71
+
72
+ @mixin br-alert--setup {
73
+ @include media-breakpoint-down(xs) {
74
+ font-size: $font-size-sm;
75
+ }
76
+
77
+ .title {
78
+ @include br-alert--title;
79
+ }
80
+
81
+ .flex {
82
+ @include br-alert--flex;
83
+ }
84
+
85
+ .btn.btn-exit {
86
+
87
+ &.error {
88
+ @include br-alert-exit($error_focus...);
89
+ }
90
+
91
+ &.success {
92
+ @include br-alert-exit($success_focus...);
93
+ }
94
+
95
+ &.neutral {
96
+ @include br-alert-exit($neutral_focus...);
97
+ }
98
+ }
99
+ }
@@ -0,0 +1,27 @@
1
+
2
+ @mixin br-footer-upper {
3
+ padding-top: 3.75rem;
4
+ display: grid;
5
+ gap: 1rem;
6
+
7
+ @include media-breakpoint-up(md) {
8
+ grid-template-columns: 11rem auto;
9
+ }
10
+
11
+ &:not(.splash) {
12
+ padding-bottom: 3.75rem;
13
+ }
14
+
15
+ nav a {
16
+ @include focus {
17
+ @include single-box($white);
18
+ background-color: $white;
19
+ color: $black;
20
+ }
21
+ }
22
+ }
23
+
24
+ @mixin br-footer-lower {
25
+ padding-bottom: 1.875rem;
26
+ padding-top: 1.875rem;
27
+ }
@@ -0,0 +1,29 @@
1
+
2
+ @mixin br-form-row {
3
+ &:not(:last-of-type) {
4
+ margin-bottom: 1rem;
5
+ }
6
+
7
+ @include media-breakpoint-up(sm) {
8
+ grid-template-columns: 33fr 67fr;
9
+ gap: $gap-account;
10
+ display: grid;
11
+ }
12
+
13
+ > label {
14
+ @include media-breakpoint-up(sm) {
15
+ margin-top: 1rem;
16
+ }
17
+ }
18
+
19
+ label {
20
+ @include media-breakpoint-down(sm) {
21
+ margin-bottom: 0.5rem;
22
+ }
23
+ }
24
+
25
+ input {
26
+ width: 100%;
27
+ margin: 0;
28
+ }
29
+ }
@@ -0,0 +1,15 @@
1
+
2
+ @mixin br-form-update {
3
+ display: grid;
4
+ gap: 1rem;
5
+
6
+ @include media-breakpoint-up(sm) {
7
+ grid-template-columns: auto 6rem;
8
+ }
9
+ }
10
+
11
+ @mixin br-form-update--input {
12
+ @include text-input-defaults;
13
+ user-select: none;
14
+ overflow: hidden;
15
+ }
@@ -1,9 +1,53 @@
1
1
 
2
+ @mixin card {
3
+ border: 1px solid $c-grey-pearl;
4
+ border-radius: $border-radius-lg;
5
+ background-color: white;
6
+
7
+ &:not(:first-child) {
8
+ margin-top: 1.25rem;
9
+ }
10
+ }
11
+
12
+ @mixin card-header {
13
+ border-bottom: 1px solid $c-grey-pearl;
14
+ padding: 1.5rem 1.75rem 1.25rem;
15
+ background-color: transparent;
16
+ }
17
+
18
+ @mixin card-subtitle {
19
+ color: $c-grey-steel !important;
20
+ font-size: $font-size-sm;
21
+ font-weight: 400;
22
+ margin: 0;
23
+ }
24
+
25
+ @mixin card-body {
26
+ padding: 1.75rem 1.75rem 1.5rem;
27
+ // padding: 1.5rem;
28
+ }
29
+
30
+ @mixin card-footer {
31
+ padding: 1rem;
32
+
33
+ @include media-breakpoint-up(md) {
34
+ border-top: 1px solid $c-grey-concrete;
35
+ }
36
+ }
37
+
38
+ @mixin card-img {
39
+ border: 1px solid $c-grey-concrete;
40
+ margin-bottom: 1rem;
41
+ max-width: 100%;
42
+ }
43
+
2
44
  @mixin form-card {
3
45
  .card-header {
4
- padding: 1.5rem 1.75rem 1.25rem;
46
+ @include card-header;
47
+ // padding: 1.5rem 1.75rem 1.25rem;
5
48
  }
6
49
  .card-body {
7
- padding: 1.75rem 1.75rem 1.5rem;
50
+ @include card-body;
51
+ // padding: 1.75rem 1.75rem 1.5rem;
8
52
  }
9
53
  }
@@ -0,0 +1,12 @@
1
+
2
+ @mixin city-of-london-lockup {
3
+ text-decoration: none;
4
+ display: inline-flex;
5
+ align-items: center;
6
+ gap: 0.625rem;
7
+
8
+ @include focus {
9
+ text-decoration: underline;
10
+ outline: none;
11
+ }
12
+ }
@@ -8,8 +8,8 @@
8
8
  }
9
9
 
10
10
  @mixin content_masthead__inner {
11
- max-width: $layout-width-wide;
12
- padding: $space--large * 2 0;
11
+ max-width: $layout-width-lg;
12
+ padding: 3.75rem 0;
13
13
  margin: 0 auto;
14
14
 
15
15
  h1 {
@@ -23,7 +23,7 @@
23
23
  }
24
24
 
25
25
  @mixin content-main-content__inner {
26
- max-width: $layout-width-wide;
26
+ max-width: $layout-width-lg;
27
27
  padding: 1.5rem 0;
28
28
  margin: 0 auto;
29
29
 
@@ -33,13 +33,13 @@
33
33
  }
34
34
  }
35
35
 
36
- @mixin input-focus {
36
+ @mixin input-focus-defaults {
37
37
  @include single-box($c-grey-steel, 0.0625rem);
38
38
  border: 1px solid $c-grey-steel;
39
39
  background-color: $c-grey-alpine;
40
40
  }
41
41
 
42
- @mixin focus_colors {
42
+ @mixin neutral-status-colors {
43
43
  background-color: $c-status-neutral-fade;
44
44
  border: 1px solid $c-status-neutral;
45
45
  color: $c-status-neutral;
@@ -13,38 +13,39 @@
13
13
  }
14
14
  }
15
15
 
16
- @mixin table-details-row($type:"header") {
17
- grid-template-columns: auto 10rem 8rem;
16
+ @mixin default-table-style {
17
+ th, td {
18
+ @include media-breakpoint-up(md) {
19
+ &:not(:last-of-type) {
20
+ border-right: 1px solid $c-grey-pearl;
21
+ }
18
22
 
19
- @if $type == "checkbox" {
20
- grid-template-columns: 2.75rem auto 10rem 8rem;
23
+ &:last-of-type {
24
+ text-align: right;
25
+ }
26
+ }
21
27
  }
22
28
  }
23
29
 
24
- @mixin table-etickets-row {
25
- grid-template-columns: 10rem auto 8rem;
26
- }
27
-
28
- @mixin table-gifts-row {
29
- grid-template-columns: 3fr 5fr 5fr 2fr 2fr;
30
- }
31
-
32
- @mixin table-membership-row {
33
- grid-template-columns: auto 10rem 10rem 8rem;
34
- }
35
-
36
- @mixin table-orders-row {
37
- grid-template-columns: 10rem 8rem auto 8rem;
38
- }
39
-
40
- @mixin table-preferences-row {
41
- grid-template-columns: auto repeat(2, 5rem);
42
- }
43
-
44
- @mixin table-tickets-row {
45
- grid-template-columns: 2fr 5fr 5fr 2fr;
46
- }
47
-
30
+ $columns-orders: 10rem 8rem auto 8rem;
31
+ $columns-details--header: auto 10rem 8rem;
32
+ $columns-details--checkbox: 2.75rem auto 10rem 8rem;
33
+ $columns-etickets: 8rem auto 8rem;
34
+ $columns-gifts: 3fr 5fr 5fr 2fr 2fr;
35
+ $columns-membership: auto 10rem 10rem 8rem;
36
+ $columns-preferences: auto repeat(2, 5rem);
37
+ $columns-tickets: 2fr 5fr 5fr 2fr;
38
+
39
+ @import "table/basket";
40
+ @import "table/details";
41
+ @import "table/etickets";
42
+ @import "table/gifts";
43
+ @import "table/membership";
44
+ @import "table/orders";
45
+ @import "table/preferences";
46
+ @import "table/resale";
47
+ @import "table/section";
48
+ @import "table/tickets";
48
49
 
49
50
 
50
51
 
@@ -1,5 +1,3 @@
1
- // paths more explicit for gulp-sass + iframe overrides
2
- @import "../../node_modules/bourbon/core/bourbon";
3
1
 
4
2
  @mixin inset($val: 0) {
5
3
  bottom: $val;
@@ -8,11 +6,16 @@
8
6
  top: $val;
9
7
  }
10
8
 
9
+ @import "br-alert";
10
+ @import "br-form-row";
11
+ @import "br-form-update";
12
+ @import "br-footer";
11
13
  @import "account/orders";
12
14
  @import "basket";
13
15
  @import "buttons";
14
16
  @import "card";
15
17
  @import "content";
18
+ @import "city-of-london";
16
19
  @import "core";
17
20
  @import "festival";
18
21
  @import "focus";
@@ -30,13 +30,13 @@
30
30
  }
31
31
 
32
32
  &:checked ~ label {
33
- @include focus_colors;
33
+ @include neutral-status-colors;
34
34
  @include single-box($c-status-neutral, 0.0625rem);
35
35
  }
36
36
  }
37
37
 
38
38
  &:checked ~ label {
39
- @include focus_colors;
39
+ @include neutral-status-colors;
40
40
  }
41
41
  }
42
42
  }
@@ -47,6 +47,7 @@
47
47
  border-radius: $border-radius-lg;
48
48
  background-color: $white;
49
49
  font-weight: 400;
50
+ display: block;
50
51
 
51
52
  @if $state != disabled {
52
53
  color: $c-grey-night;
@@ -1,5 +1,26 @@
1
1
 
2
2
  @mixin all-text-inputs {
3
+ [type='color'],
4
+ [type='date'],
5
+ [type='datetime'],
6
+ [type='datetime-local'],
7
+ [type='email'],
8
+ [type='month'],
9
+ [type='number'],
10
+ [type='password'],
11
+ [type='search'],
12
+ [type='tel'],
13
+ [type='text'],
14
+ [type='time'],
15
+ [type='url'],
16
+ [type='week'],
17
+ input:not([type]),
18
+ textarea {
19
+ @content;
20
+ }
21
+ }
22
+
23
+ @mixin text-input-defaults {
3
24
  border: solid $border-width $c-border-strong;
4
25
  padding: 0.875rem 0.875rem 0.75rem;
5
26
  background-color: $c-grey-alpine;
@@ -0,0 +1,33 @@
1
+
2
+ @mixin basket-table {
3
+ tr {
4
+ @include table-row;
5
+ justify-content: space-between;
6
+ display: flex;
7
+ gap: 0.75rem;
8
+
9
+ &.promo {
10
+ padding-bottom: 1rem;
11
+ }
12
+
13
+ &.donation {
14
+ @include basket-row-grid;
15
+ padding-bottom: 1rem;
16
+ padding-top: 1rem;
17
+ }
18
+
19
+ &.total {
20
+ font-size: $h4-font-size;
21
+ border-bottom: none;
22
+ font-weight: 700;
23
+ }
24
+
25
+ &.continue {
26
+ border-bottom: none;
27
+
28
+ td {
29
+ width: 100%;
30
+ }
31
+ }
32
+ }
33
+ }
@@ -1,6 +1,5 @@
1
1
 
2
- table.details {
3
-
2
+ @mixin details-table {
4
3
  $mq: md;
5
4
 
6
5
  thead {
@@ -22,7 +21,7 @@ table.details {
22
21
  display: grid;
23
22
 
24
23
  @include media-breakpoint-up($mq) {
25
- @include table-details-row;
24
+ grid-template-columns: $columns-details--header;
26
25
  }
27
26
 
28
27
  @include media-breakpoint-down($mq) {
@@ -1,5 +1,5 @@
1
- table.etickets {
2
1
 
2
+ @mixin etickets-table {
3
3
  $mq: md;
4
4
 
5
5
  thead {
@@ -22,7 +22,7 @@ table.etickets {
22
22
  }
23
23
 
24
24
  @include media-breakpoint-up($mq) {
25
- @include table-etickets-row;
25
+ grid-template-columns: $columns-etickets;
26
26
  }
27
27
 
28
28
  @include media-breakpoint-down($mq) {
@@ -1,5 +1,5 @@
1
- table.gifts {
2
1
 
2
+ @mixin gifts-table {
3
3
  $mq: xl;
4
4
 
5
5
  thead {
@@ -15,7 +15,7 @@ table.gifts {
15
15
  tr {
16
16
  @include media-breakpoint-up($mq) {
17
17
  @include table-row;
18
- @include table-gifts-row;
18
+ grid-template-columns: $columns-gifts;
19
19
  display: grid;
20
20
  gap: 0.75rem;
21
21
 
@@ -0,0 +1,8 @@
1
+
2
+ @mixin membership-table {
3
+ tr {
4
+ @include media-breakpoint-up(md) {
5
+ grid-template-columns: $columns-membership;
6
+ }
7
+ }
8
+ }