@bloom-housing/ui-components 2.0.0-pre-tailwind

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 (223) hide show
  1. package/.jest/setup-tests.js +24 -0
  2. package/CHANGELOG.md +20 -0
  3. package/README.md +195 -0
  4. package/index.ts +148 -0
  5. package/jest.config.js +41 -0
  6. package/package.json +98 -0
  7. package/public/images/alameda-logo-white.svg +1 -0
  8. package/public/images/arrow-down.png +0 -0
  9. package/public/images/arrow-down.svg +1 -0
  10. package/public/images/check.png +0 -0
  11. package/public/images/check.svg +11 -0
  12. package/public/images/eho-logo-white.svg +1 -0
  13. package/public/images/eho-logo.svg +1 -0
  14. package/public/images/logo_glyph.svg +11 -0
  15. package/src/actions/Button.scss +157 -0
  16. package/src/actions/Button.tsx +80 -0
  17. package/src/actions/ExpandableContent.tsx +29 -0
  18. package/src/actions/ExpandableText.scss +18 -0
  19. package/src/actions/ExpandableText.tsx +52 -0
  20. package/src/actions/LinkButton.tsx +30 -0
  21. package/src/actions/LocalizedLink.tsx +11 -0
  22. package/src/authentication/AuthContext.ts +327 -0
  23. package/src/authentication/RequireLogin.tsx +62 -0
  24. package/src/authentication/index.ts +5 -0
  25. package/src/authentication/timeout.tsx +127 -0
  26. package/src/authentication/token.ts +17 -0
  27. package/src/authentication/useRequireLoggedInUser.ts +19 -0
  28. package/src/blocks/ActionBlock.scss +108 -0
  29. package/src/blocks/ActionBlock.tsx +51 -0
  30. package/src/blocks/AppStatusItem.scss +140 -0
  31. package/src/blocks/AppStatusItem.tsx +75 -0
  32. package/src/blocks/DashBlock.tsx +42 -0
  33. package/src/blocks/DashBlocks.scss +56 -0
  34. package/src/blocks/DashBlocks.tsx +7 -0
  35. package/src/blocks/FormCard.scss +201 -0
  36. package/src/blocks/FormCard.tsx +29 -0
  37. package/src/blocks/HousingCounselor.tsx +51 -0
  38. package/src/blocks/ImageCard.scss +91 -0
  39. package/src/blocks/ImageCard.tsx +77 -0
  40. package/src/blocks/InfoCard.scss +42 -0
  41. package/src/blocks/InfoCard.tsx +44 -0
  42. package/src/blocks/StatusBar.scss +30 -0
  43. package/src/blocks/StatusBar.tsx +31 -0
  44. package/src/blocks/ViewItem.scss +59 -0
  45. package/src/blocks/ViewItem.tsx +32 -0
  46. package/src/config/ConfigContext.tsx +36 -0
  47. package/src/config/NavigationContext.tsx +54 -0
  48. package/src/config/index.ts +2 -0
  49. package/src/footers/ExygyFooter.tsx +12 -0
  50. package/src/footers/SiteFooter.scss +28 -0
  51. package/src/footers/SiteFooter.tsx +10 -0
  52. package/src/forms/CloudinaryUpload.ts +50 -0
  53. package/src/forms/DOBField.tsx +132 -0
  54. package/src/forms/DateField.tsx +120 -0
  55. package/src/forms/Dropzone.scss +17 -0
  56. package/src/forms/Dropzone.tsx +67 -0
  57. package/src/forms/Field.tsx +115 -0
  58. package/src/forms/FieldGroup.tsx +82 -0
  59. package/src/forms/Form.tsx +22 -0
  60. package/src/forms/HouseholdMemberForm.tsx +41 -0
  61. package/src/forms/HouseholdSizeField.tsx +74 -0
  62. package/src/forms/PhoneField.tsx +69 -0
  63. package/src/forms/PhoneMask.tsx +24 -0
  64. package/src/forms/Select.tsx +80 -0
  65. package/src/forms/Textarea.scss +40 -0
  66. package/src/forms/Textarea.tsx +64 -0
  67. package/src/forms/TimeField.tsx +176 -0
  68. package/src/global/AppearanceTypes.ts +46 -0
  69. package/src/global/ApplicationStatusType.ts +6 -0
  70. package/src/global/accordion.scss +4 -0
  71. package/src/global/blocks.scss +137 -0
  72. package/src/global/custom_counter.scss +50 -0
  73. package/src/global/forms.scss +362 -0
  74. package/src/global/headers.scss +89 -0
  75. package/src/global/homepage.scss +8 -0
  76. package/src/global/index.scss +72 -0
  77. package/src/global/lists.scss +21 -0
  78. package/src/global/markdown.scss +33 -0
  79. package/src/global/mixins.scss +175 -0
  80. package/src/global/navbar.scss +280 -0
  81. package/src/global/print.scss +59 -0
  82. package/src/global/tables.scss +197 -0
  83. package/src/global/text.scss +141 -0
  84. package/src/global/vendor/AgPagination.tsx +133 -0
  85. package/src/global/vendor/_setup_bulma.scss +31 -0
  86. package/src/global/vendor/ag_grid.scss +140 -0
  87. package/src/headers/Hero.scss +56 -0
  88. package/src/headers/Hero.tsx +76 -0
  89. package/src/headers/PageHeader.scss +31 -0
  90. package/src/headers/PageHeader.tsx +39 -0
  91. package/src/headers/SiteHeader.tsx +136 -0
  92. package/src/helpers/address.tsx +46 -0
  93. package/src/helpers/blankApplication.ts +108 -0
  94. package/src/helpers/capitalize.tsx +7 -0
  95. package/src/helpers/dateToString.ts +11 -0
  96. package/src/helpers/debounce.ts +12 -0
  97. package/src/helpers/formOptions.tsx +229 -0
  98. package/src/helpers/formatYesNoLabel.ts +9 -0
  99. package/src/helpers/getTranslationWithArguments.ts +14 -0
  100. package/src/helpers/links.ts +7 -0
  101. package/src/helpers/localeRoute.tsx +13 -0
  102. package/src/helpers/mergeDeep.ts +12 -0
  103. package/src/helpers/nextjs.ts +7 -0
  104. package/src/helpers/numberOrdinal.ts +17 -0
  105. package/src/helpers/occupancyFormatting.tsx +46 -0
  106. package/src/helpers/pdfs.ts +19 -0
  107. package/src/helpers/photos.ts +19 -0
  108. package/src/helpers/preferences.tsx +426 -0
  109. package/src/helpers/resolveObject.ts +5 -0
  110. package/src/helpers/state.tsx +7 -0
  111. package/src/helpers/tableSummaries.tsx +80 -0
  112. package/src/helpers/translator.tsx +37 -0
  113. package/src/helpers/useKeyPress.ts +17 -0
  114. package/src/helpers/useMutate.ts +40 -0
  115. package/src/helpers/useOutsideClick.ts +25 -0
  116. package/src/helpers/validators.ts +3 -0
  117. package/src/icons/HeaderBadge.scss +29 -0
  118. package/src/icons/HeaderBadge.tsx +38 -0
  119. package/src/icons/Icon.scss +76 -0
  120. package/src/icons/Icon.tsx +145 -0
  121. package/src/icons/Icons.tsx +556 -0
  122. package/src/lists/PreferencesList.scss +72 -0
  123. package/src/lists/PreferencesList.tsx +60 -0
  124. package/src/locales/es.json +745 -0
  125. package/src/locales/general.json +1307 -0
  126. package/src/locales/general_OLD.json +868 -0
  127. package/src/locales/vi.json +745 -0
  128. package/src/locales/zh.json +745 -0
  129. package/src/navigation/Breadcrumbs.scss +25 -0
  130. package/src/navigation/Breadcrumbs.tsx +27 -0
  131. package/src/navigation/FooterNav.scss +47 -0
  132. package/src/navigation/FooterNav.tsx +19 -0
  133. package/src/navigation/LanguageNav.scss +32 -0
  134. package/src/navigation/LanguageNav.tsx +53 -0
  135. package/src/navigation/ProgressNav.scss +102 -0
  136. package/src/navigation/ProgressNav.tsx +50 -0
  137. package/src/navigation/TabNav.scss +38 -0
  138. package/src/navigation/TabNav.tsx +69 -0
  139. package/src/navigation/Tabs.scss +65 -0
  140. package/src/navigation/Tabs.tsx +93 -0
  141. package/src/navigation/UserNav.tsx +37 -0
  142. package/src/notifications/AlertBox.scss +78 -0
  143. package/src/notifications/AlertBox.tsx +79 -0
  144. package/src/notifications/AlertNotice.scss +58 -0
  145. package/src/notifications/AlertNotice.tsx +37 -0
  146. package/src/notifications/ApplicationStatus.scss +10 -0
  147. package/src/notifications/ApplicationStatus.tsx +64 -0
  148. package/src/notifications/ErrorMessage.tsx +15 -0
  149. package/src/notifications/SiteAlert.tsx +54 -0
  150. package/src/notifications/StatusAside.scss +11 -0
  151. package/src/notifications/StatusAside.tsx +25 -0
  152. package/src/notifications/StatusMessage.scss +25 -0
  153. package/src/notifications/StatusMessage.tsx +59 -0
  154. package/src/notifications/alertTypes.ts +7 -0
  155. package/src/notifications/index.ts +4 -0
  156. package/src/overlays/Drawer.scss +105 -0
  157. package/src/overlays/Drawer.tsx +51 -0
  158. package/src/overlays/LoadingOverlay.scss +25 -0
  159. package/src/overlays/LoadingOverlay.tsx +29 -0
  160. package/src/overlays/Modal.scss +55 -0
  161. package/src/overlays/Modal.tsx +61 -0
  162. package/src/overlays/Overlay.scss +50 -0
  163. package/src/overlays/Overlay.tsx +100 -0
  164. package/src/page_components/listing/AdditionalFees.tsx +56 -0
  165. package/src/page_components/listing/ListingCard.scss +47 -0
  166. package/src/page_components/listing/ListingCard.tsx +34 -0
  167. package/src/page_components/listing/ListingDetailHeader.tsx +25 -0
  168. package/src/page_components/listing/ListingDetails.tsx +29 -0
  169. package/src/page_components/listing/ListingMap.scss +36 -0
  170. package/src/page_components/listing/ListingMap.tsx +138 -0
  171. package/src/page_components/listing/ListingsGroup.scss +65 -0
  172. package/src/page_components/listing/ListingsGroup.tsx +49 -0
  173. package/src/page_components/listing/UnitTables.tsx +111 -0
  174. package/src/page_components/listing/listing_sidebar/ApplicationSection.tsx +49 -0
  175. package/src/page_components/listing/listing_sidebar/Apply.tsx +225 -0
  176. package/src/page_components/listing/listing_sidebar/LeasingAgent.tsx +77 -0
  177. package/src/page_components/listing/listing_sidebar/ListingUpdated.tsx +20 -0
  178. package/src/page_components/listing/listing_sidebar/ReferralApplication.tsx +28 -0
  179. package/src/page_components/listing/listing_sidebar/SidebarAddress.tsx +56 -0
  180. package/src/page_components/listing/listing_sidebar/Waitlist.tsx +94 -0
  181. package/src/page_components/listing/listing_sidebar/WhatToExpect.tsx +22 -0
  182. package/src/page_components/listing/listing_sidebar/events/DownloadLotteryResults.tsx +34 -0
  183. package/src/page_components/listing/listing_sidebar/events/EventDateSection.tsx +24 -0
  184. package/src/page_components/listing/listing_sidebar/events/LotteryResultsEvent.tsx +26 -0
  185. package/src/page_components/listing/listing_sidebar/events/OpenHouseEvent.tsx +27 -0
  186. package/src/page_components/listing/listing_sidebar/events/PublicLotteryEvent.tsx +22 -0
  187. package/src/prototypes/AppCard.scss +64 -0
  188. package/src/prototypes/Back.scss +19 -0
  189. package/src/prototypes/ButtonGroup.scss +6 -0
  190. package/src/prototypes/ButtonPager.scss +22 -0
  191. package/src/prototypes/FieldSection.scss +35 -0
  192. package/src/prototypes/FieldSection.tsx +31 -0
  193. package/src/prototypes/GridItem.tsx +15 -0
  194. package/src/prototypes/SideNav.scss +32 -0
  195. package/src/prototypes/SideNav.tsx +14 -0
  196. package/src/prototypes/SummaryCard.scss +34 -0
  197. package/src/sections/ContentSection.scss +15 -0
  198. package/src/sections/ContentSection.tsx +25 -0
  199. package/src/sections/FooterSection.scss +6 -0
  200. package/src/sections/FooterSection.tsx +16 -0
  201. package/src/sections/GridSection.scss +72 -0
  202. package/src/sections/GridSection.tsx +82 -0
  203. package/src/sections/InfoCardGrid.scss +45 -0
  204. package/src/sections/InfoCardGrid.tsx +20 -0
  205. package/src/sections/ListSection.scss +7 -0
  206. package/src/sections/ListSection.tsx +23 -0
  207. package/src/sections/MarkdownSection.scss +13 -0
  208. package/src/sections/MarkdownSection.tsx +21 -0
  209. package/src/sections/ResponsiveContentList.tsx +67 -0
  210. package/src/sections/ResponsiveWrappers.tsx +23 -0
  211. package/src/tables/GroupedTable.tsx +86 -0
  212. package/src/tables/MinimalTable.tsx +32 -0
  213. package/src/tables/ResponsiveTable.tsx +24 -0
  214. package/src/tables/StandardTable.tsx +229 -0
  215. package/src/text/Description.scss +52 -0
  216. package/src/text/Description.tsx +24 -0
  217. package/src/text/Message.scss +16 -0
  218. package/src/text/Message.tsx +16 -0
  219. package/src/text/Tag.scss +94 -0
  220. package/src/text/Tag.tsx +22 -0
  221. package/tailwind.config.js +128 -0
  222. package/tailwind.tosass.js +29 -0
  223. package/tsconfig.json +31 -0
@@ -0,0 +1,8 @@
1
+ .homepage-extra {
2
+ @apply text-center;
3
+ @apply text-base;
4
+
5
+ @screen md {
6
+ @apply text-lg;
7
+ }
8
+ }
@@ -0,0 +1,72 @@
1
+ @import "tailwindcss/base";
2
+ @import "tailwindcss/components";
3
+
4
+ @import url("https://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700");
5
+ @import url("https://fonts.googleapis.com/css?family=Lato:400,900,700");
6
+ @import url("https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic");
7
+
8
+ html {
9
+ @apply antialiased;
10
+ }
11
+
12
+ body {
13
+ @apply font-sans;
14
+ @apply bg-white;
15
+ @apply text-gray-900;
16
+ }
17
+
18
+ .-top {
19
+ top: -0.8rem;
20
+ }
21
+
22
+ main {
23
+ }
24
+
25
+ .site-wrapper {
26
+ display: flex;
27
+ min-height: 100vh;
28
+ flex-direction: column;
29
+ }
30
+
31
+ .site-content {
32
+ flex: 1;
33
+ display: flex;
34
+ flex-direction: column;
35
+
36
+ main {
37
+ flex: 1;
38
+ display: flex;
39
+ flex-direction: column;
40
+
41
+ > section {
42
+ flex: 1;
43
+ }
44
+ }
45
+ }
46
+
47
+ .site-content--wide-content {
48
+ .navbar,
49
+ .page-header__group {
50
+ @apply max-w-screen-xl;
51
+ }
52
+ }
53
+
54
+ @import "mixins.scss";
55
+ @import "markdown.scss";
56
+ @import "navbar.scss";
57
+ @import "text.scss";
58
+ @import "headers.scss";
59
+ @import "blocks.scss";
60
+ @import "accordion.scss";
61
+ @import "custom_counter.scss";
62
+ @import "forms.scss";
63
+ @import "lists.scss";
64
+ @import "tables.scss";
65
+ @import "homepage.scss";
66
+ @import "print.scss";
67
+ @import "vendor/ag_grid.scss";
68
+ /* ***********/
69
+ /* Additional stylesheets are contained within individual component folders */
70
+ /* ***********/
71
+
72
+ @import "tailwindcss/utilities";
@@ -0,0 +1,21 @@
1
+ // responsive content spacing
2
+ .responsive-content-list {
3
+ .responsive-content-item {
4
+ @screen md {
5
+ @apply pt-12;
6
+ @apply pb-4;
7
+ margin-left: -9999rem;
8
+ margin-right: -9999rem;
9
+ /* add back negative margin value */
10
+ padding-left: 9999rem;
11
+ padding-right: 9999rem;
12
+ }
13
+ }
14
+
15
+ .header-hidden {
16
+ @screen md {
17
+ @apply pt-0;
18
+ @apply pb-0;
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,33 @@
1
+ .markdown {
2
+ h3 {
3
+ @apply mt-8;
4
+ @apply mb-5;
5
+ @apply text-3xl;
6
+
7
+ @screen md {
8
+ @apply text-xl;
9
+ }
10
+ }
11
+
12
+ h3:first-child {
13
+ @apply mt-0;
14
+ }
15
+
16
+ hr {
17
+ @apply mt-8;
18
+ @apply mb-8;
19
+ @apply border-b;
20
+ @apply border-solid;
21
+ @apply border-gray-450;
22
+ }
23
+
24
+ p:not(:last-child),
25
+ ul:not(:last-child) {
26
+ @apply mb-4;
27
+ }
28
+
29
+ ul {
30
+ list-style: disc;
31
+ @apply ml-6;
32
+ }
33
+ }
@@ -0,0 +1,175 @@
1
+ // Using due to errors from compass mixin
2
+ @mixin custom-linear-gradient($top, $bottom) {
3
+ background: $top; /* Old browsers */
4
+ background: -moz-linear-gradient(top, $top 0%, $bottom 100%); /* FF3.6+ */
5
+ background: -webkit-linear-gradient(top, $top 0%, $bottom 100%); /* Chrome10+,Safari5.1+ */
6
+ background: -o-linear-gradient(top, $top 0%, $bottom 100%); /* Opera 11.10+ */
7
+ background: -ms-linear-gradient(top, $top 0%, $bottom 100%); /* IE10+ */
8
+ background: linear-gradient(to bottom, $top 0%, $bottom 100%); /* W3C */
9
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#000000',GradientType=0 ); /* IE6-9 */
10
+ }
11
+
12
+ // Adds full screen image to pseudo element
13
+ @mixin overlay-image() {
14
+ @apply block;
15
+ @apply absolute;
16
+ @apply inset-0;
17
+ content: "";
18
+ z-index: 2;
19
+ }
20
+
21
+ @mixin clearfix() {
22
+ &::after {
23
+ @apply table;
24
+ @apply clear-both;
25
+ content: "";
26
+ }
27
+ }
28
+
29
+ @mixin has-toggle() {
30
+ &:after {
31
+ @apply font-bold;
32
+ @apply inline-block;
33
+ @apply ml-2;
34
+ @apply mr-2;
35
+ @apply text-sm;
36
+ content: "⌃";
37
+ transform: rotate(180deg) translateY(2px);
38
+ }
39
+ &[aria-expanded="true"]:after {
40
+ @apply mr-5;
41
+ transform: rotate(0deg) translateY(2px);
42
+ }
43
+ }
44
+
45
+ @mixin has-image-skeleton() {
46
+ @apply bg-gray-500;
47
+
48
+ &::before {
49
+ @apply float-left;
50
+ content: "";
51
+ width: 1px;
52
+ margin-left: -1px;
53
+ height: 0;
54
+ padding-top: 591.44px / 1127.34px * 100%;
55
+ }
56
+
57
+ &::after {
58
+ /* to clear float */
59
+ @apply table;
60
+ @apply clear-both;
61
+ content: "";
62
+ }
63
+ }
64
+
65
+ @mixin filled-appearances() {
66
+ &.is-primary {
67
+ @apply bg-primary-dark;
68
+ @apply border-primary-dark;
69
+ @apply text-white;
70
+
71
+ &:hover {
72
+ @apply bg-primary-darker;
73
+ @apply border-primary-darker;
74
+ }
75
+ }
76
+
77
+ &.is-success {
78
+ @apply bg-success;
79
+ @apply border-success;
80
+ @apply text-white;
81
+
82
+ &:hover {
83
+ @apply bg-success-dark;
84
+ }
85
+ }
86
+
87
+ &.is-alert {
88
+ @apply bg-alert;
89
+ @apply border-alert;
90
+ @apply text-white;
91
+
92
+ &:hover {
93
+ @apply bg-alert-dark;
94
+ @apply border-alert-dark;
95
+ }
96
+ }
97
+
98
+ &.is-warning {
99
+ @apply bg-warn;
100
+ @apply border-warn;
101
+ @apply text-gray-800;
102
+
103
+ &:hover {
104
+ @apply text-white;
105
+ @apply bg-warn-dark;
106
+ @apply border-warn-dark;
107
+ }
108
+ }
109
+
110
+ &.is-borderless {
111
+ @apply text-primary-darker;
112
+ border-color: transparent;
113
+ background: transparent;
114
+
115
+ &:hover {
116
+ background: transparent;
117
+ @apply text-primary-darker;
118
+ }
119
+ }
120
+ }
121
+
122
+ @mixin outlined-appearances() {
123
+ @apply bg-white;
124
+ @apply text-primary;
125
+ @apply border-2;
126
+ @apply border-primary;
127
+
128
+ &:hover {
129
+ @apply bg-primary-dark;
130
+ @apply text-white;
131
+ }
132
+
133
+ &.is-outlined {
134
+ background: transparent;
135
+
136
+ &.is-success {
137
+ @apply text-success;
138
+
139
+ &:hover {
140
+ @apply text-white;
141
+ }
142
+ }
143
+
144
+ &.is-alert {
145
+ @apply text-alert;
146
+
147
+ &:hover {
148
+ @apply text-white;
149
+ }
150
+ }
151
+
152
+ &.is-warning {
153
+ @apply text-gray-800;
154
+
155
+ &:hover {
156
+ @apply text-white;
157
+ }
158
+ }
159
+ }
160
+ }
161
+
162
+ @mixin transition-timing {
163
+ transition-duration: 0.25s;
164
+ transition-timing-function: cubic-bezier(0.475, 0.335, 0.43, 0.94);
165
+
166
+ @media (prefers-reduced-motion: reduce) {
167
+ transition-duration: 0s;
168
+ }
169
+ }
170
+
171
+ @mixin ellipsis() {
172
+ white-space: nowrap;
173
+ overflow: hidden;
174
+ text-overflow: ellipsis;
175
+ }
@@ -0,0 +1,280 @@
1
+ @import "vendor/setup_bulma";
2
+ @import "~bulma/sass/components/navbar.sass";
3
+
4
+ .navbar-notice {
5
+ @apply hidden;
6
+ @apply w-full;
7
+ @apply bg-primary;
8
+ @apply text-right;
9
+ @apply text-white;
10
+
11
+ @screen md {
12
+ @apply block;
13
+ }
14
+ }
15
+
16
+ .navbar-notice__text {
17
+ @apply max-w-5xl;
18
+ @apply m-auto;
19
+ @apply text-sm;
20
+ @apply pt-2;
21
+ @apply pb-2;
22
+ @apply pr-1;
23
+
24
+ a,
25
+ a:hover {
26
+ @apply underline;
27
+ color: inherit;
28
+ }
29
+ }
30
+
31
+ // Custom Navbar Styles
32
+ nav.navbar {
33
+ @apply max-w-5xl;
34
+ @apply m-auto;
35
+ }
36
+
37
+ .navbar-brand {
38
+ @apply relative;
39
+ @apply justify-start;
40
+
41
+ @screen print {
42
+ @apply justify-center;
43
+ }
44
+ }
45
+
46
+ .navbar-image-only {
47
+ max-height: 80% !important; // Unfortunately we need this to overrwrite Bulma, reccomend removing Bulma #1345
48
+ max-width: 100%;
49
+ }
50
+
51
+ .navbar-custom-width {
52
+ @apply flex;
53
+ @apply items-center;
54
+ @apply justify-center;
55
+ @apply flex-col;
56
+ }
57
+
58
+ .navbar-image-only-container {
59
+ // 75px - .5rem of padding from the container around it.
60
+ height: 67px;
61
+ @screen md {
62
+ height: 120px;
63
+ }
64
+ }
65
+
66
+ .navbar-width-slim {
67
+ width: 200px;
68
+ }
69
+
70
+ .navbar-width-med {
71
+ width: 450px;
72
+ }
73
+
74
+ .navbar-width-wide {
75
+ width: 600px;
76
+ }
77
+
78
+ .navbar-brand .logo {
79
+ @apply text-black;
80
+ @apply block;
81
+ @apply text-center;
82
+ @apply z-10;
83
+ @apply items-center;
84
+ @apply justify-center;
85
+ max-width: 60%;
86
+ max-height: 120px;
87
+
88
+ @screen md {
89
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.25);
90
+ margin-bottom: -0.75rem;
91
+ margin-top: -2.75em;
92
+ padding-top: 1em;
93
+
94
+ &:focus {
95
+ box-shadow: 0 0 3px 4px $tailwind-accent-cool;
96
+ }
97
+ }
98
+
99
+ @screen print {
100
+ margin-top: 0;
101
+ }
102
+
103
+ &.navbar-item,
104
+ &.navbar-item:hover,
105
+ &.navbar-item:focus {
106
+ @apply bg-white;
107
+ @apply border-b-0;
108
+ @apply pt-1;
109
+ @apply pb-1;
110
+ @apply pl-4;
111
+ @apply pr-4;
112
+ @apply flex;
113
+ }
114
+
115
+ .logo__image {
116
+ @apply inline-block;
117
+ @apply mt-1;
118
+ @apply mb-1;
119
+ max-height: 1.5rem;
120
+
121
+ @screen md {
122
+ @apply mt-3;
123
+ @apply mb-2;
124
+ max-height: 2rem;
125
+ }
126
+ }
127
+
128
+ .logo__title {
129
+ @apply uppercase;
130
+ @apply font-bold;
131
+ @apply text-gray-900;
132
+ @apply font-alt-sans;
133
+ @apply tracking-wider;
134
+ @apply text-sm;
135
+
136
+ @screen md {
137
+ @apply text-tiny;
138
+ }
139
+ }
140
+ }
141
+
142
+ .navbar-item,
143
+ .navbar-link {
144
+ @apply pt-1;
145
+ @apply pb-1;
146
+ }
147
+
148
+ a.navbar-link,
149
+ a.navbar-item {
150
+ @apply text-base;
151
+ @apply text-gray-800;
152
+ @apply py-4;
153
+ @apply border-b;
154
+ @apply border-gray-400;
155
+
156
+ &:hover {
157
+ @apply bg-primary-lighter;
158
+ }
159
+
160
+ &:focus {
161
+ @apply bg-white;
162
+ }
163
+
164
+ @screen md {
165
+ @apply text-sm;
166
+ @apply border-b-2;
167
+ @apply uppercase;
168
+ @apply pt-10;
169
+ @apply pb-3;
170
+ border-color: transparent;
171
+
172
+ &:hover {
173
+ @apply bg-white;
174
+ @apply border-primary;
175
+ @apply text-gray-800;
176
+ }
177
+ }
178
+ }
179
+
180
+ .navbar-dropdown {
181
+ @apply py-0;
182
+ @apply rounded-b-none;
183
+
184
+ a.navbar-item {
185
+ @apply text-base;
186
+ @apply normal-case;
187
+ @apply py-4;
188
+ @apply px-4;
189
+ @apply border-b;
190
+ @apply border-gray-400;
191
+
192
+ &:hover {
193
+ @apply bg-primary-lighter;
194
+ }
195
+
196
+ @screen md {
197
+ @apply text-tiny;
198
+ }
199
+ }
200
+ }
201
+
202
+ .navbar-divider {
203
+ @apply my-0;
204
+ }
205
+
206
+ .navbar-link:not(.is-arrowless)::after {
207
+ @apply border-gray-600;
208
+ bottom: 1.25rem;
209
+ top: auto;
210
+ }
211
+
212
+ .navbar-item.has-dropdown {
213
+ &:hover {
214
+ .navbar-link {
215
+ background-color: transparent;
216
+ }
217
+ }
218
+
219
+ > .navbar-link {
220
+ @apply hidden;
221
+
222
+ @screen md {
223
+ @apply block;
224
+ }
225
+ }
226
+ }
227
+
228
+ .navbar-burger {
229
+ &:hover {
230
+ background: transparent;
231
+ }
232
+ }
233
+
234
+ .navbar-burger {
235
+ @apply absolute;
236
+ top: 50%;
237
+ right: 0;
238
+ transform: translateY(-50%);
239
+
240
+ &:before {
241
+ @apply absolute;
242
+ content: "Menu";
243
+ left: -22px;
244
+ top: calc(50% + 1px);
245
+ transform: translateY(-50%);
246
+ @apply uppercase;
247
+ @apply text-xs;
248
+ }
249
+
250
+ span {
251
+ height: 2px;
252
+ }
253
+ }
254
+
255
+ .navbar-menu {
256
+ @apply p-0;
257
+ }
258
+
259
+ .navbar-end {
260
+ @apply border-t;
261
+ @apply border-gray-400;
262
+ }
263
+
264
+ .navbar__skip-link {
265
+ @apply sr-only;
266
+ @apply text-white;
267
+
268
+ &:hover {
269
+ @apply text-white;
270
+ }
271
+
272
+ &:focus {
273
+ @apply not-sr-only;
274
+ @apply absolute;
275
+ @apply p-1;
276
+ @apply text-white;
277
+ top: 0;
278
+ left: 0;
279
+ }
280
+ }