barbican-reset 3.17.0 → 3.19.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 (50) hide show
  1. package/README.md +1 -1
  2. package/components/BrAlert.vue +1 -1
  3. package/components/BrButton.vue +2 -2
  4. package/components/BrCardTitle.vue +1 -1
  5. package/components/BrFormCheckbox.vue +1 -1
  6. package/components/BrFormFieldsetNew.vue +15 -0
  7. package/components/BrFormInput.vue +16 -8
  8. package/components/BrFormLabel.vue +1 -3
  9. package/components/BrFormRadio.vue +4 -1
  10. package/components/BrFormToggle.vue +32 -0
  11. package/components/BrNavCard.vue +24 -13
  12. package/components/BrNavCardWrap.vue +5 -0
  13. package/components/BrOverlay.vue +33 -0
  14. package/components/SeeInside.vue +1 -1
  15. package/icons/back_arrow.vue +1 -8
  16. package/icons/close.vue +7 -0
  17. package/icons/index.js +4 -8
  18. package/icons/qr_code.vue +5 -0
  19. package/icons/stream/index.js +0 -2
  20. package/index.js +10 -1
  21. package/package.json +1 -1
  22. package/scss/_br-button.scss +9 -2
  23. package/scss/{_br-checkbox.scss → _br-form-checkbox.scss} +3 -4
  24. package/scss/_br-form-fieldset.scss +71 -0
  25. package/scss/_br-form-toggle.scss +71 -0
  26. package/scss/_br-nav-card-wrap.scss +11 -0
  27. package/scss/_br-navlink.scss +4 -2
  28. package/scss/_br-overlay.scss +26 -0
  29. package/scss/_input.scss +6 -7
  30. package/scss/card/_login.scss +5 -6
  31. package/scss/card/_membership-new.scss +45 -0
  32. package/scss/card/_membership.scss +42 -41
  33. package/scss/card/_navcard.scss +49 -41
  34. package/scss/card/index.scss +1 -0
  35. package/scss/index.scss +8 -3
  36. package/scss/lists.scss +0 -16
  37. package/scss/mixins/_br-card.scss +3 -0
  38. package/scss/mixins/_focus.scss +15 -0
  39. package/scss/mixins/buttons/_custom.scss +4 -25
  40. package/scss/mixins/buttons/_outline.scss +4 -4
  41. package/scss/mixins/buttons/custom/_exit-overlay.scss +31 -0
  42. package/scss/mixins/buttons/custom/_renew-membership.scss +27 -0
  43. package/scss/mixins/input/_checkbox.scss +2 -2
  44. package/scss/mixins/input/_generic.scss +4 -2
  45. package/scss/mixins/input/_radio.scss +87 -3
  46. package/scss/typography.scss +6 -0
  47. package/icons/arrow.vue +0 -5
  48. package/icons/arrow_back.vue +0 -12
  49. package/icons/arrow_forward.vue +0 -10
  50. package/icons/stream/close.vue +0 -7
package/README.md CHANGED
@@ -51,7 +51,7 @@ You can reference any of the following components:
51
51
  | -------------------- | ------------------- | -------------------- | ---------------- | ------------- |
52
52
  | `<br-alert>` | BrAlert.vue | .br-alert | br-alert--setup | - |
53
53
  | `<br-anchor>` | BrAnchor.vue | .btn | setup-button | - |
54
- | `<br-button>` | BrButton.vue | .br-checkbox | br-checkbox | - |
54
+ | `<br-button>` | BrButton.vue | .br-form-checkbox | br-form-checkbox | - |
55
55
  | `<br-confirm-done>` | BrConfirmDone.vue | - | - | - |
56
56
  | `<br-confirm-email>` | BrConfirmEmail.vue | - | - | - |
57
57
  | `<br-container>` | BrContainer.vue | .br-container--outer | - | - |
@@ -19,7 +19,7 @@
19
19
 
20
20
  `
21
21
  <script>
22
- import CloseIcon from "#icons/stream/close.vue";
22
+ import CloseIcon from "#icons/close.vue";
23
23
  import BrButton from "#components/BrButton.vue";
24
24
 
25
25
  export default {
@@ -1,6 +1,6 @@
1
- <template>
2
- <!-- https://dockyard.com/blog/2020/03/02/accessible-loading-indicatorswith-no-extra-elements -->
1
+ <!-- https://dockyard.com/blog/2020/03/02/accessible-loading-indicatorswith-no-extra-elements -->
3
2
 
3
+ <template>
4
4
  <button
5
5
  :class="printClassNames"
6
6
  @click="$emit('click')"
@@ -1,3 +1,3 @@
1
1
  <template>
2
- <h4 class="card-title"><slot /></h4>
2
+ <div class="card-title"><slot /></div>
3
3
  </template>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="br-checkbox">
2
+ <div class="br-form-checkbox">
3
3
  <BrFormInput v-bind="$attrs" type="checkbox">
4
4
  <slot />
5
5
  </BrFormInput>
@@ -0,0 +1,15 @@
1
+ <template>
2
+ <div role="group" :aria-labelledby="id" class="fieldset">
3
+ <div class="wrap-legend">
4
+ <div :id="id" class="legend">{{ label }}</div>
5
+ </div>
6
+ <slot />
7
+ </div>
8
+ </template>
9
+
10
+ <script setup>
11
+ const props = defineProps({
12
+ label: String,
13
+ id: String,
14
+ })
15
+ </script>
@@ -1,12 +1,20 @@
1
1
  <template>
2
- <input
3
- :autocomplete="generateAutoComplete"
4
- :data-test="generateDataTest"
5
- :type="generateType"
6
- :id="generateID"
7
- v-model="model"
8
- v-bind="$attrs" />
9
- <label v-if="$slots.default" :for="generateID"><slot /></label>
2
+ <label :for="generateID">
3
+
4
+ <input
5
+ :autocomplete="generateAutoComplete"
6
+ :data-test="generateDataTest"
7
+ :type="generateType"
8
+ :id="generateID"
9
+ v-model="model"
10
+ v-bind="$attrs" />
11
+
12
+ <span class="label-text">
13
+ <slot />
14
+ </span>
15
+
16
+ </label>
17
+
10
18
  </template>
11
19
 
12
20
  <script setup>
@@ -1,8 +1,6 @@
1
1
  <template>
2
2
  <component :is="!disabled ? 'label' : 'div'" :for="!disabled ? id : null" class="br-form-label">
3
- <strong>
4
- <slot />
5
- </strong>
3
+ <slot />
6
4
  <span v-if="required"> (required)</span>
7
5
  <span v-if="optional"> (optional)</span>
8
6
  </component>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="br-radio">
2
+ <div :class="['br-radio', slots.default ? 'has-label-text' : 'no-label-text']">
3
3
  <BrFormInput v-bind="$attrs" type="radio">
4
4
  <slot />
5
5
  </BrFormInput>
@@ -8,6 +8,9 @@
8
8
 
9
9
  <script setup>
10
10
  import BrFormInput from '#components/BrFormInput.vue'
11
+ import { useSlots } from 'vue';
12
+
13
+ const slots = useSlots()
11
14
 
12
15
  defineOptions({
13
16
  inheritAttrs: false,
@@ -0,0 +1,32 @@
1
+ <template>
2
+ <div :class="generateClasses">
3
+ <BrFormLabel>
4
+ <span>
5
+ <slot />
6
+ </span>
7
+ <BrFormInput v-bind="$attrs" type="checkbox" />
8
+ </BrFormLabel>
9
+ </div>
10
+ </template>
11
+
12
+ <script setup>
13
+ import { computed } from 'vue'
14
+ import BrFormLabel from '#components/BrFormLabel.vue'
15
+ import BrFormInput from '#components/BrFormInput.vue'
16
+
17
+ defineOptions({
18
+ inheritAttrs: false,
19
+ })
20
+
21
+ const props = defineProps({
22
+ class: String
23
+ })
24
+
25
+ const generateClasses = computed(() => {
26
+ let result = ['br-form-toggle']
27
+
28
+ if (props.class) result.push(props.class)
29
+
30
+ return result
31
+ })
32
+ </script>
@@ -1,33 +1,33 @@
1
1
  <template>
2
- <a v-if="to.slice(0, 4) == 'http'" :href="to" class="link-navcard external">
3
- <br-card class="navcard external">
4
- <div class="wrap-navcard-content">
5
- <div class="wrap-navcard-icon">
2
+ <a v-if="to.startsWith('http')" :href="to" :class="generateClasses">
3
+ <br-card class="navcard">
4
+ <div :class="['wrap-navcard-content', { 'has-icon' : $slots.icon }]">
5
+ <div v-if="$slots.icon" class="wrap-navcard-icon">
6
6
  <slot name="icon" />
7
7
  </div>
8
8
  <div>
9
- <br-card-title>
9
+ <br-card-title v-if="$slots.title">
10
10
  <slot name="title" />
11
11
  </br-card-title>
12
- <br-card-text>
13
- <slot name="copy" />
12
+ <br-card-text v-if="$slots.text">
13
+ <slot name="text" />
14
14
  </br-card-text>
15
15
  </div>
16
16
  </div>
17
17
  </br-card>
18
18
  </a>
19
- <router-link v-else class="link-navcard" :to="{ name: to }">
19
+ <router-link v-else class="link-navcard" :to="{ name: to }">
20
20
  <br-card class="navcard">
21
- <div class="wrap-navcard-content">
22
- <div class="wrap-navcard-icon">
21
+ <div :class="['wrap-navcard-content', { 'has-icon' : $slots.icon }]">
22
+ <div v-if="$slots.icon" class="wrap-navcard-icon">
23
23
  <slot name="icon" />
24
24
  </div>
25
25
  <div>
26
- <br-card-title>
26
+ <br-card-title v-if="$slots.title">
27
27
  <slot name="title" />
28
28
  </br-card-title>
29
- <br-card-text>
30
- <slot name="copy" />
29
+ <br-card-text v-if="$slots.text">
30
+ <slot name="text" />
31
31
  </br-card-text>
32
32
  </div>
33
33
  </div>
@@ -36,10 +36,21 @@
36
36
  </template>
37
37
 
38
38
  <script setup>
39
+ import { computed } from 'vue';
40
+
41
+ const generateClasses = computed(() => {
42
+ let result = ['link-navcard']
43
+
44
+ if (props.class) result.push(props.class)
45
+
46
+ return result
47
+ })
48
+
39
49
  const props = defineProps({
40
50
  to: {
41
51
  type: String,
42
52
  required: true,
43
53
  },
54
+ class: String
44
55
  })
45
56
  </script>
@@ -0,0 +1,5 @@
1
+ <template>
2
+ <div class="br-nav-card-wrap">
3
+ <slot />
4
+ </div>
5
+ </template>
@@ -0,0 +1,33 @@
1
+ <template>
2
+ <div class="br-overlay-wrap">
3
+ <div class="br-overlay-content">
4
+ <slot />
5
+ </div>
6
+ <br-button variant="exit-overlay" @click="emit('closeOverlay')">
7
+ <close-icon class="close-icon" />
8
+ </br-button>
9
+ </div>
10
+ </template>
11
+
12
+ <script setup>
13
+ import { onMounted, onUnmounted } from 'vue';
14
+ import BrButton from "#components/BrButton.vue";
15
+ import CloseIcon from "#icons/close.vue";
16
+
17
+ const emit = defineEmits(["closeOverlay"]);
18
+
19
+ function listenForKeys({ key }) {
20
+ if (key == 'Escape') {
21
+ emit('closeOverlay')
22
+ }
23
+ }
24
+
25
+ onMounted(() => {
26
+ document.addEventListener('keydown', listenForKeys)
27
+ })
28
+
29
+ onUnmounted(() => {
30
+ document.removeEventListener('keydown', listenForKeys)
31
+ })
32
+ </script>
33
+
@@ -44,7 +44,7 @@
44
44
 
45
45
  <script>
46
46
  import BrButton from '#components/BrButton.vue'
47
- import CloseIcon from '#icons/stream/close.vue'
47
+ import CloseIcon from '#icons/close.vue'
48
48
 
49
49
  export default {
50
50
  components: {
@@ -1,10 +1,3 @@
1
1
  <template>
2
- <svg
3
- width="16"
4
- height="16"
5
- viewBox="0 0 16 16"
6
- xmlns="http://www.w3.org/2000/svg"
7
- >
8
- <path d="M16 7H3.83L9.42 1.41L8 0L0 8L8 16L9.41 14.59L3.83 9H16V7Z" />
9
- </svg>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 16 16"><path d="M16,7H3.83L9.42,1.41l-1.42-1.41L0,8l8,8,1.41-1.41-5.58-5.59h12.17v-2Z" fill="currentColor" /></svg>
10
3
  </template>
@@ -0,0 +1,7 @@
1
+ <template>
2
+ <svg width="28" height="28" viewBox="0 0 20 20">
3
+ <path class="tint" fill="#ffffff" d="M10,1c-4.9,0-9,4.1-9,9s4.1,9,9,9s9-4.1,9-9S14.9,1,10,1z"/>
4
+ <path class="cross" fill="currentColor" d="M10,0C4.5,0,0,4.5,0,10s4.5,10,10,10s10-4.5,10-10S15.5,0,10,0z M10,18c-4.4,0-8-3.6-8-8s3.6-8,8-8 s8,3.6,8,8S14.4,18,10,18z M12.6,6L10,8.6L7.4,6L6,7.4L8.6,10L6,12.6L7.4,14l2.6-2.6l2.6,2.6l1.4-1.4L11.4,10L14,7.4L12.6,6z"/>
5
+ </svg>
6
+ </template>
7
+
package/icons/index.js CHANGED
@@ -1,23 +1,19 @@
1
- import ArrowBack from "#icons/arrow_back.vue";
2
- import ArrowIcon from "#icons/arrow.vue";
3
- import ArrowForward from "#icons/arrow_forward.vue";
4
1
  import BackArrow from "#icons/back_arrow.vue";
5
2
  import BarbicanLogo from "#icons/barbican.vue";
6
3
  import CartIcon from "#icons/cart.vue";
7
4
  import CityOfLondonLogo from "#icons/city_of_london.vue";
8
5
  import CityOfLondonLockup from "#icons/city_of_london_lockup.vue";
6
+ import CloseIcon from "#icons/close.vue";
9
7
  import InformationIcon from "#icons/information.vue";
10
-
11
- import PersonIcon from "#icons/person.vue";
8
+ import QrCode from "#icons/qr_code.vue";
12
9
 
13
10
  export {
14
- ArrowBack,
15
- ArrowIcon,
16
- ArrowForward,
17
11
  BackArrow,
18
12
  BarbicanLogo,
19
13
  CartIcon,
20
14
  CityOfLondonLogo,
21
15
  CityOfLondonLockup,
16
+ CloseIcon,
22
17
  InformationIcon,
18
+ QrCode,
23
19
  };
@@ -0,0 +1,5 @@
1
+ <template>
2
+ <svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
3
+ <path d="M55.3902 99.7024V88.6243H66.4683V99.7024H55.3902ZM44.3122 88.6243V60.9292H55.3902V88.6243H44.3122ZM88.6243 72.0073V49.8512H99.7024V72.0073H88.6243ZM77.5463 49.8512V38.7731H88.6243V49.8512H77.5463ZM11.078 60.9292V49.8512H22.1561V60.9292H11.078ZM0 49.8512V38.7731H11.078V49.8512H0ZM49.8512 11.078V0H60.9292V11.078H49.8512ZM8.30853 24.9256H24.9256V8.30853H8.30853V24.9256ZM0 33.2341V0H33.2341V33.2341H0ZM8.30853 91.3938H24.9256V74.7768H8.30853V91.3938ZM0 99.7024V66.4683H33.2341V99.7024H0ZM74.7768 24.9256H91.3938V8.30853H74.7768V24.9256ZM66.4683 33.2341V0H99.7024V33.2341H66.4683ZM77.5463 99.7024V83.0853H66.4683V72.0073H88.6243V88.6243H99.7024V99.7024H77.5463ZM55.3902 60.9292V49.8512H77.5463V60.9292H55.3902ZM33.2341 60.9292V49.8512H22.1561V38.7731H55.3902V49.8512H44.3122V60.9292H33.2341ZM38.7731 33.2341V11.078H49.8512V22.1561H60.9292V33.2341H38.7731ZM12.4628 20.7713V12.4628H20.7713V20.7713H12.4628ZM12.4628 87.2396V78.931H20.7713V87.2396H12.4628ZM78.931 20.7713V12.4628H87.2396V20.7713H78.931Z" fill="currentColor" />
4
+ </svg>
5
+ </template>
@@ -4,11 +4,9 @@ import ChatIcon from "#icons/stream/chat.vue";
4
4
  import CogIcon from "#icons/stream/cog.vue";
5
5
  import VolumeIcon from "#icons/stream/volume.vue";
6
6
  import LiveIcon from "#icons/stream/live.vue";
7
- import CloseIcon from "#icons/stream/close.vue";
8
7
 
9
8
  export {
10
9
  AirplayIcon,
11
- CloseIcon,
12
10
  CastIcon,
13
11
  ChatIcon,
14
12
  CogIcon,
package/index.js CHANGED
@@ -25,6 +25,7 @@ import BrFormDate from '#components/BrFormDate.vue'
25
25
  import BrFormEdit from '#components/BrFormEdit.vue'
26
26
  import BrFormEmail from '#components/BrFormEmail.vue'
27
27
  import BrFormFieldset from '#components/BrFormFieldset.vue'
28
+ import BrFormFieldsetNew from '#components/BrFormFieldsetNew.vue'
28
29
  import BrFormInput from '#components/BrFormInput.vue'
29
30
  import BrFormPassword from '#components/BrFormPassword.vue'
30
31
  import BrFormRadio from '#components/BrFormRadio.vue'
@@ -32,12 +33,16 @@ import BrFormRadioGroup from '#components/BrFormRadioGroup.vue'
32
33
  import BrFormRow from '#components/BrFormRow.vue'
33
34
  import BrFormTel from '#components/BrFormTel.vue'
34
35
  import BrFormTextarea from '#components/BrFormTextarea.vue'
36
+ import BrFormToggle from '#components/BrFormToggle.vue'
35
37
  import BrFormUpdate from '#components/BrFormUpdate.vue'
36
38
  import BrFormVisible from '#components/BrFormVisible.vue'
37
39
 
38
- import BrLoader from '#components/BrLoader.vue'
39
40
  import BrNavCard from '#components/BrNavCard.vue'
41
+ import BrNavCardWrap from '#components/BrNavCardWrap.vue'
40
42
  import BrNavLink from '#components/BrNavLink.vue'
43
+ import BrOverlay from '#components/BrOverlay.vue'
44
+
45
+ import BrLoader from '#components/BrLoader.vue'
41
46
  import BrSkiplink from '#components/BrSkiplink.vue'
42
47
  import BrStatusBars from '#components/BrStatusBars.vue'
43
48
  import BrWrap from '#components/BrWrap.vue'
@@ -71,6 +76,7 @@ export {
71
76
  BrFormEdit,
72
77
  BrFormEmail,
73
78
  BrFormFieldset,
79
+ BrFormFieldsetNew,
74
80
  BrFormInput,
75
81
  BrFormPassword,
76
82
  BrFormRadio,
@@ -78,11 +84,14 @@ export {
78
84
  BrFormRow,
79
85
  BrFormTel,
80
86
  BrFormTextarea,
87
+ BrFormToggle,
81
88
  BrFormUpdate,
82
89
  BrFormVisible,
83
90
  BrLoader,
84
91
  BrNavCard,
92
+ BrNavCardWrap,
85
93
  BrNavLink,
94
+ BrOverlay,
86
95
  BrSkiplink,
87
96
  BrStatusBars,
88
97
  BrWrap,
package/package.json CHANGED
@@ -137,5 +137,5 @@
137
137
  "style:patterns": "cd patterns && gulp build:css",
138
138
  "build:patterns": "cd patterns && rm -rf html && pug views --out html"
139
139
  },
140
- "version": "3.17.0"
140
+ "version": "3.19.0"
141
141
  }
@@ -113,8 +113,15 @@
113
113
  /// Membership card button.
114
114
  /// Used for membership renewals.
115
115
  /// @group Buttons
116
- .btn.btn-membership-card {
117
- @include btn-membership-card;
116
+ .btn.btn-renew-membership {
117
+ @include btn-renew-membership;
118
+ }
119
+
120
+ /// Overlay exit button.
121
+ /// Used for closing the overlay.
122
+ /// @group Buttons
123
+ .btn.btn-exit-overlay {
124
+ @include btn-exit-overlay;
118
125
  }
119
126
 
120
127
  .btn {
@@ -3,11 +3,10 @@
3
3
  @use "mixins/input" as *;
4
4
  @use "mixins/focus" as *;
5
5
 
6
- // deprecate custom-checkbox class. br-checkbox is more descriptive
6
+ /// @deprecated custom-checkbox class. br-form-checkbox is more descriptive
7
7
 
8
- .br-checkbox,
9
- .custom-checkbox {
10
- @include br-checkbox; // formerly checkbox-input
8
+ .br-form-checkbox {
9
+ @include br-form-checkbox; // formerly checkbox-input
11
10
 
12
11
  input[table][type='checkbox'] {
13
12
  @include inset;
@@ -0,0 +1,71 @@
1
+ @use "./mixins/breakpoints" as *;
2
+
3
+ fieldset, .fieldset {
4
+ padding: var(--padding-lg) var(--padding-lg) var(--padding-md);
5
+ border-color: var(--color-black-25-lighten);
6
+ border-radius: var(--border-radius-sm);
7
+ border-width: var(--border-width-sm);
8
+ margin: var(--margin-lg) 0 0;
9
+ border-style: solid;
10
+ }
11
+
12
+ .fieldset .legend {
13
+ background-color: white;
14
+ display: inline-block;
15
+ padding: 4px;
16
+ }
17
+
18
+ .fieldset .wrap-legend {
19
+ margin-top: calc(var(--margin-xxl) * -1);
20
+ }
21
+
22
+ @include small-up {
23
+ .fieldset.table {
24
+ grid-template-columns: auto repeat(2, 5rem);
25
+ border-radius: 0;
26
+ display: grid;
27
+ padding: 0;
28
+ }
29
+
30
+ .fieldset .wrap-legend {
31
+ margin-top: 0;
32
+ }
33
+
34
+ .fieldset.table .legend {
35
+ padding: var(--padding-md);
36
+ }
37
+
38
+ .fieldset.table .br-radio {
39
+ border-left-color: var(--color-black-25-lighten);
40
+ border-left-width: var(--border-width-sm);
41
+ border-left-style: solid;
42
+ justify-content: center;
43
+ align-items: center;
44
+ display: flex;
45
+ margin: 0;
46
+ }
47
+
48
+ .fieldset.table .br-radio label {
49
+ padding: var(--padding-sm);
50
+ border-radius: 50%;
51
+ border-width: 0;
52
+
53
+ &:has(input:focus) {
54
+ outline-width: var(--border-width-sm);
55
+ outline-style: dashed;
56
+ }
57
+
58
+ &:has(input:checked):has(input:focus) {
59
+ outline-width: var(--border-width-sm);
60
+ outline-style: dashed;
61
+ }
62
+ }
63
+
64
+ .fieldset.table .br-radio input[type=radio] {
65
+ margin-top: 0;
66
+ }
67
+
68
+ .fieldset.table .br-radio label .label-text {
69
+ display: none;
70
+ }
71
+ }
@@ -0,0 +1,71 @@
1
+ @use "mixins/input/generic" as *;
2
+ @use "mixins/breakpoints" as *;
3
+
4
+ .br-form-toggle label {
5
+ @include generic-input-label;
6
+
7
+ @include small-up {
8
+ max-width: var(--width-layout-xs);
9
+ }
10
+
11
+ & {
12
+ grid-template-columns: auto 3.25rem;
13
+ padding-left: var(--padding-md);
14
+ display: inline-grid;
15
+ align-items: center;
16
+ font-weight: normal;
17
+ height: initial;
18
+ cursor: pointer;
19
+ width: 100%;
20
+ gap: 0.5em;
21
+ }
22
+ }
23
+
24
+ .br-form-toggle input[type=checkbox] {
25
+ background-color: var(--color-black-50-lighten);
26
+ transition-property: background-color;
27
+ transition-duration: 200ms;
28
+ border-radius: 1.125em;
29
+ position: relative;
30
+ appearance: none;
31
+ height: 1.875rem;
32
+ cursor: inherit;
33
+ width: 3.25rem;
34
+ color: white;
35
+ padding: 0;
36
+ margin: 0;
37
+
38
+ &:focus {
39
+ outline-color: var(--color-black-50-lighten);
40
+ outline-offset: var(--border-width-lg);
41
+ outline-width: var(--border-width-lg);
42
+ outline-style: solid;
43
+ }
44
+ }
45
+
46
+ .br-form-toggle input[type=checkbox]:before {
47
+ transition-property: transform;
48
+ transition-duration: 200ms;
49
+ background-color: white;
50
+ border-radius: 50%;
51
+ position: absolute;
52
+ height: 1.65em;
53
+ bottom: 0.3em;
54
+ width: 1.65em;
55
+ left: 0.3em;
56
+ content: '';
57
+ }
58
+
59
+ .br-form-toggle input[type=checkbox]:checked:before {
60
+ -webkit-transform: translateX(1.65em);
61
+ -ms-transform: translateX(1.65em);
62
+ transform: translateX(1.65em);
63
+ }
64
+
65
+ .br-form-toggle input[type=checkbox]:checked {
66
+ background-color: var(--color-status-success);
67
+
68
+ &:focus {
69
+ outline-color: var(--color-status-success);
70
+ }
71
+ }
@@ -0,0 +1,11 @@
1
+ @use "mixins/breakpoints" as *;
2
+
3
+ .br-nav-card-wrap {
4
+ gap: var(--gap-md);
5
+ display: grid;
6
+
7
+ @include medium-up {
8
+ grid-template-columns: repeat(2, 1fr);
9
+ gap: var(--gap-lg);
10
+ }
11
+ }
@@ -1,5 +1,5 @@
1
1
  .br-navlink {
2
- border-color: var(--color-black-10-lighten);
2
+ border-color: var(--color-black-25-lighten);
3
3
  border-bottom-width: var(--border-width-sm);
4
4
  border-right-width: var(--border-width-sm);
5
5
  border-left-width: var(--border-width-sm);
@@ -10,9 +10,11 @@
10
10
  background-color: white;
11
11
  text-decoration: none;
12
12
  border-top-width: 0;
13
+ align-items: center;
13
14
  border-style: solid;
15
+ gap: var(--gap-xs);
14
16
  font-weight: bold;
15
- display: block;
17
+ display: flex;
16
18
  }
17
19
 
18
20
  .br-navlink:first-child {
@@ -0,0 +1,26 @@
1
+ @use "./mixins/core" as *;
2
+
3
+ .br-overlay-wrap {
4
+ @include inset;
5
+
6
+ & {
7
+ background-color: var(--color-brand-generic-5-lighten);
8
+ color: var(--color-black-60-lighten);
9
+ padding: var(--padding-xxl);
10
+ align-items: center;
11
+ overflow: scroll;
12
+ position: fixed;
13
+ display: flex;
14
+ height: 100%;
15
+ width: 100%;
16
+ z-index: 5;
17
+ }
18
+ }
19
+
20
+ .br-overlay-content {
21
+ justify-content: center;
22
+ position: relative;
23
+ display: flex;
24
+ width: 100%;
25
+ z-index: 2;
26
+ }
package/scss/_input.scss CHANGED
@@ -5,19 +5,18 @@ input::placeholder {
5
5
  color: var(--color-black-25-lighten);
6
6
  }
7
7
 
8
- input[type='checkbox'],
9
- input[type='radio'] {
10
- margin-bottom: var(--margin-sm);
11
- margin-right: var(--margin-sm);
8
+ input[type=checkbox],
9
+ input[type=radio] {
10
+ margin: 0;
12
11
  }
13
12
 
14
- input[type='button'],
15
- input[type='submit'] {
13
+ input[type=button],
14
+ input[type=submit] {
16
15
  border-radius: var(--border-radius-lg);
17
16
  appearance: none;
18
17
  }
19
18
 
20
- input[type='number'] {
19
+ input[type=number] {
21
20
  @include focus {
22
21
  @include input-focus-defaults;
23
22
  }