diff --git a/build/docker/Dockerfile.backend b/build/docker/Dockerfile.backend
index 733cece4a7..619ca78440 100644
--- a/build/docker/Dockerfile.backend
+++ b/build/docker/Dockerfile.backend
@@ -3,6 +3,8 @@ FROM --platform=linux/amd64 node:16.3.0
# The source stage will contain only the necessary source code
FROM node:18.20-alpine AS source
+RUN ln -s /usr/lib/libssl.so.3 /lib/libssl.so.3
+
# WORKDIR doesn't need to be fancy, but it needs to be consistent
WORKDIR /app
@@ -48,6 +50,8 @@ CMD yarn test
# The build stage builds the code using the dependencies from the deps stage
FROM node:18.20-alpine AS build
+RUN ln -s /usr/lib/libssl.so.3 /lib/libssl.so.3
+
# Start in the root
WORKDIR /app
@@ -68,6 +72,8 @@ RUN yarn build
# The optimize stage contains only dependencies needed to run the service
FROM node:18.20-alpine AS optimize
+RUN ln -s /usr/lib/libssl.so.3 /lib/libssl.so.3
+
# No need to keep nested dirs since shared-helpers is only needed for testing
WORKDIR /app
@@ -75,6 +81,7 @@ WORKDIR /app
COPY --from=source --chown=node:node \
/app/api/package*.json \
/app/api/tsconfig*.json \
+ /app/api/yarn*.lock \
/app/api/prisma ./
# Set the NODE_ENV variable
@@ -94,6 +101,8 @@ RUN yarn prisma generate
# The run stage contains an optimized image for running the application
FROM node:18.20-alpine AS run
+RUN ln -s /usr/lib/libssl.so.3 /lib/libssl.so.3
+
# No need to keep nested dirs since shared-helpers is only needed for testing
WORKDIR /app
@@ -101,6 +110,7 @@ WORKDIR /app
COPY --from=source --chown=node:node \
/app/api/package*.json \
/app/api/tsconfig*.json \
+ /app/api/yarn*.lock \
/app/api/prisma ./
# Add only dependencies required to run the application
diff --git a/doorway-ui-components/src/headers/SiteHeader.scss b/doorway-ui-components/src/headers/SiteHeader.scss
index 2521803a2c..cda83b4e4b 100644
--- a/doorway-ui-components/src/headers/SiteHeader.scss
+++ b/doorway-ui-components/src/headers/SiteHeader.scss
@@ -271,7 +271,7 @@
}
@media (min-width: $screen-md) and (max-width: $screen-lg) {
- padding: var(--logo-tablet-padding);
+ margin-right: calc(2px - var(--logo-tablet-padding));
}
@media (min-width: $screen-print) {
diff --git a/doorway-ui-components/src/navigation/LanguageNav.scss b/doorway-ui-components/src/navigation/LanguageNav.scss
index 33e8298287..97cd1092a4 100644
--- a/doorway-ui-components/src/navigation/LanguageNav.scss
+++ b/doorway-ui-components/src/navigation/LanguageNav.scss
@@ -1,51 +1,94 @@
.language-bar {
- --inner-max-width: var(--bloom-width-5xl);
- --inner-width: inherit;
- --inner-desktop-padding: inherit;
- --inner-mobile-padding: inherit;
- background-color: var(--bloom-color-gray-200);
+ --bar-background-color: var(--seeds-bg-color-canvas);
+ --selected-language-color: var(--seeds-color-secondary);
+ --inner-max-width: var(--seeds-width-5xl);
+ --inner-gap: var(--seeds-s2);
+
+ background-color: var(--seeds-bg-color-surface);
+
+ @media (min-width: $screen-md) {
+ background-color: var(--bar-background-color);
+ }
}
.language-bar__inner {
max-width: var(--inner-max-width);
- width: var(--inner-width);
display: flex;
- justify-content: flex-end;
+ flex-direction: column;
+ align-items: start;
+ justify-content: space-between;
+ gap: var(--inner-gap);
margin: auto;
- padding: var(--inner-mobile-padding);
- padding: var(--bloom-s2) 0;
+ padding-block: var(--inner-gap) 0;
- @media (max-width: $screen-md) {
- justify-content: center;
+ @media (min-width: $screen-md) {
+ flex-direction: row;
+ align-items: center;
+ padding-block-end: var(--inner-gap);
+ }
+}
+
+.language-nav {
+ width: 100%;
+ background-color: var(--bar-background-color);
+ padding-block: var(--seeds-s1);
+
+ @media (min-width: $screen-md) {
+ padding-block: 0;
+ width: auto;
}
}
.language-nav__list {
display: flex;
- @media (max-width: $screen-md) {
- justify-content: center;
- }
+
li:not(:last-child) {
border-right: var(--doorway-standard-border);
}
}
.language-nav__list-button {
- padding: var(--bloom-s1) var(--bloom-s3);
- color: var(--bloom-text-color);
- border-radius: var(--bloom-rounded-full);
+ padding: var(--seeds-s1) var(--seeds-s3);
+ color: var(--seeds-text-color);
+ border-radius: var(--seeds-rounded-full);
font-weight: 500;
- font-size: var(--bloom-font-size-xs);
+ font-size: var(--seeds-font-size-xs);
cursor: pointer;
background-color: transparent;
- margin: 0 var(--bloom-s1_5);
+ margin: 0 var(--seeds-s1_5);
&:hover {
- background-color: var(--doorway-color-secondary);
+ background-color: var(--selected-language-color);
}
&.is-active {
- color: var(--bloom-text-color);
- background-color: var(--doorway-color-secondary);
+ color: var(--seeds-text-color);
+ background-color: var(--selected-language-color);
+ }
+}
+
+.language-bar__association-logo {
+ background-color: var(--seeds-bg-color-surface);
+
+ @media (min-width: $screen-md) {
+ background-color: transparent;
+ }
+
+ a {
+ display: block;
+ }
+
+ img {
+ height: 20px;
+ margin-left: var(--inner-gap);
+
+ @media (min-width: $screen-md) {
+ height: 30px;
+ margin-left: calc(var(--logo-tablet-padding) * 0.75);
+ }
+
+ @media (min-width: $screen-lg) {
+ margin-left: -2px;
+ }
}
}
diff --git a/doorway-ui-components/src/navigation/LanguageNav.tsx b/doorway-ui-components/src/navigation/LanguageNav.tsx
index 20bb4f5d16..9e53ae2179 100644
--- a/doorway-ui-components/src/navigation/LanguageNav.tsx
+++ b/doorway-ui-components/src/navigation/LanguageNav.tsx
@@ -1,4 +1,5 @@
import React from "react"
+import { t } from "@bloom-housing/ui-components"
import "./LanguageNav.scss"
export type LangItem = {
@@ -16,6 +17,11 @@ const LanguageNav = ({ ariaLabel, languages }: LanguageNavProps) => {
return (
+
375 Beale Street, Suite 800
diff --git a/sites/public/styles/overrides.scss b/sites/public/styles/overrides.scss
index 99853fa6fd..f75ecaa551 100644
--- a/sites/public/styles/overrides.scss
+++ b/sites/public/styles/overrides.scss
@@ -7,11 +7,11 @@
--logo-content-padding: 0;
--logo-desktop-height: var(--base-height);
--logo-desktop-padding: 0;
- --logo-tablet-padding: 0 0 0 var(--bloom-s4);
+ --logo-tablet-padding: var(--bloom-s4);
--logo-image-desktop-max-height: 3rem;
--link-align-items: center;
--link-padding-wrapped: var(--bloom-s2) var(--bloom-s4);
- --link-padding-inline: var(--bloom-s4) var(--bloom-s4) var(--bloom-s3) var(--bloom-s4);
+ --link-padding-inline: var(--bloom-s4) var(--bloom-s3) var(--bloom-s3) var(--bloom-s3);
--link-bottom-border: 0;
--link-font-size: var(--bloom-font-size-sm);
--link-font-weight: 500;
@@ -22,6 +22,10 @@
--mobile-menu-font-size: var(--bloom-font-size-s);
--navbar-menu-desktop-margin: inherit;
--navbar-menu-min-width: 110px;
+
+ @media (min-width: $screen-lg) {
+ --link-padding-inline: var(--bloom-s4) var(--bloom-s4) var(--bloom-s3) var(--bloom-s4);
+ }
}
.doorway-message {