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 (
+
+ + {t("nav.mtcLogo")} + +
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 {