diff --git a/package-lock.json b/package-lock.json
index 20014665d..78589f5f8 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "fx-private-relay-add-on",
- "version": "2.6.1",
+ "version": "2.7.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
diff --git a/package.json b/package.json
index a168d2b7e..1a72f6515 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "fx-private-relay-add-on",
- "version": "2.6.1",
+ "version": "2.7.0",
"description": "Firefox Relay",
"main": "index.js",
"devDependencies": {
diff --git a/src/css/global.css b/src/css/global.css
index 277a37c54..148a60e86 100644
--- a/src/css/global.css
+++ b/src/css/global.css
@@ -15,6 +15,7 @@
--layoutLg: 64px;
--layoutXl: 96px;
--layout2xl: 192px;
+ --layout3xl: 256px;
/* Border Radius */
--borderRadiusXs: 2px;
@@ -23,6 +24,7 @@
--borderRadiusLg: 16px;
/* Width Tokens */
+ --content2xs: 256px;
--contentXs: 304px;
--contentSm: 432px;
--contentMd: 688px;
@@ -35,6 +37,21 @@
--screenLg: 1024px;
--screenXl: 1312px;
+ /* Typography Tokens */
+ --fontSizeTitle2xl: 64px;
+ --fontSizeTitleXl: 56px;
+ --fontSizeTitleLg: 48px;
+ --fontSizeTitleMd: 40px;
+ --fontSizeTitleSm: 32px;
+ --fontSizeTitleXs: 24px;
+ --fontSizeTitle2xs: 20px;
+ --fontSizeTitle3xs: 16px;
+ --fontSizeBodyXl: 21px;
+ --fontSizeBodyLg: 18px;
+ --fontSizeBodyMd: 16px;
+ --fontSizeBodySm: 14px;
+ --fontSizeBodyXs: 12px;
+
/* Box Shadow Tokens */
--boxShadowSm: 0 8px 12px 1px rgba(29, 17, 51, .04), 0 3px 16px 2px rgba(9, 32, 77, .12), 0 5px 10px -3px rgba(29, 17, 51, .12);
--boxShadowMd: 0 16px 24px 2px rgba(29, 17, 51, .04), 0 6px 32px 4px rgba(9, 32, 77, .12), 0 8px 12px -5px rgba(29, 17, 51, .12);
@@ -43,16 +60,22 @@
/* Primary Nebula Colors */
--colorInformational: #0060df;
--colorInformationalActive: #054096;
- --colorInformationalHover: #bcd0ec;
+ --colorInformationalHover: #0250bb;
--colorInformationalFocus: rgba(0, 96, 223, 0.4); /* This is the RGB value of #0060df @ 40% opacity */
--colorInformationalDisabled: #C9D9F3;
/* Nebula Colors: Button: Error */
- --colorError: #FF4F5E;
- --colorErrorActive: #C50042;
- --colorErrorHover: #E22850;
+ --colorError: #E22850;
+ --colorErrorActive: #810220;
+ --colorErrorHover: #C50042;
--colorErrorFocus: #FFBDC5 ;
+ /* Nebula Colors: Button: Warning */
+ --colorWarning: #ffa436;
+ --colorWarningActive: #c45a27;
+ --colorWarningHover: #e27f2e;
+ --colorWarningFocus: #ffd5b2;
+
/* Nebula Colors: Blues */
--colorBlue90: #09204d;
--colorBlue80: #073072;
@@ -65,6 +88,18 @@
--colorBlue10: #80ebff;
--colorBlue05: #aaf2ff;
+ /* Nebula Colors: Green */
+ --colorGreen90: #00736c;
+ --colorGreen80: #00a49a;
+ --colorGreen70: #1cc4a0;
+ --colorGreen60: #3ad4b3;
+ --colorGreen50: #3fe1b0;
+ --colorGreen40: #54ffbd;
+ --colorGreen30: #88ffd1;
+ --colorGreen20: #b3ffe3;
+ --colorGreen10: #d1ffee;
+ --colorGreen05: #e3fff3;
+
/* Nebula Colors: Grays */
--colorBlack: #000000;
--colorGrey60: #0c0c0d;
@@ -87,6 +122,18 @@
--colorViolet10: #f6b8ff;
--colorViolet05: #f7e2ff;
+ /* Nebula Colors: Purple */
+ --colorPurple90: #321c64;
+ --colorPurple80: #45278d;
+ --colorPurple70: #592acb;
+ --colorPurple60: #7542e5;
+ --colorPurple50: #9059ff;
+ --colorPurple40: #ab71ff;
+ --colorPurple30: #c689ff;
+ --colorPurple20: #cb9eff;
+ --colorPurple10: #d9bfff;
+ --colorPurple05: #e7dfff;
+
/* Nebula Colors: Whites */
--colorWhite: #ffffff;
@@ -155,6 +202,7 @@
color: var(--colorInformational);
font-family: var(--fontStackFirefox);
font-weight: 400;
+ background-color: transparent;
}
.fx-relay-c-button.t-secondary:hover {
@@ -258,6 +306,7 @@
background-color: var(--colorWhite);
border: 2px solid transparent;
outline: 1px solid var(--colorGrey30);
+ position: relative;
}
.fx-relay-c-search-input:focus {
@@ -265,6 +314,7 @@
border: 2px solid var(--colorInformational);
}
+.fx-relay-c-search-input.is-active + .fx-relay-c-search-controls,
.fx-relay-c-search-input:focus + .fx-relay-c-search-controls {
opacity: 1;
}
diff --git a/src/css/popup.css b/src/css/popup.css
index 994c0b571..2b6c25be3 100644
--- a/src/css/popup.css
+++ b/src/css/popup.css
@@ -1,545 +1,540 @@
+/* Global Panel Styles */
-.fx-relay-panel {
+.fx-relay-panel-wrapper {
--panelWidth: 360px;
/* Any changes to --panelHeight should be reflected in the screen media query */
--panelHeight: 500px;
- background-color: var(--colorWhite);
+ background-color: var(--colorGrey05);
min-width: var(--panelWidth);
min-height: var(--panelHeight);
+ max-width: var(--panelWidth);
color: var(--relayInk70);
overflow: hidden;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
box-sizing: border-box;
font-family: var(--fontStackBase);
+ font-size: var(--fontSizeBodyMd);
+ position: relative;
+ padding: 0;
+ margin: 0;
}
-.fx-relay-panel *, .fx-relay-panel *:before, .fx-relay-panel *:after {
+.fx-relay-panel-wrapper *, .fx-relay-panel-wrapper *:before, .fx-relay-panel-wrapper *:after {
box-sizing: inherit;
}
-sign-up-panel {
- height: 100%;
- display: flex;
- flex-direction: column;
- font-size: 14px;
- position: relative;
+/* Utilities */
+.fx-relay-panel-wrapper .is-hidden {
+ display: none;
}
-sign-up-panel::after {
- height: 3px;
- background: var(--relayFxGradient);
- content: "";
- position: absolute;
- lefT: 0;
- right: 0;
- top: -1px;
- background-size: 120%;
+/* Main Content */
+
+.fx-relay-panel-content {
+ padding: var(--spacingMd);
}
-::-moz-focus-inner {
- border: 0;
+/* FIXME: Refactor to account for height dynamically */
+/* Magic Number: Custom max-height for masks panel */
+#masks-panel[data-account-level="free"] .fx-relay-panel-content {
+ max-height: 384px;
+ overflow: auto;
}
-p {
- margin-top: 0;
- line-height: 1.5;
- text-align: center;
+#masks-panel[data-account-level="premium"] .fx-relay-panel-content {
+ max-height: 336px;
+ overflow: auto;
}
-settings, report-issue, report-issue-success {
- background-color: rgba(255, 255, 255, 1);
- position: absolute;
+/* Header */
+
+.fx-relay-menu-header {
+ border: 0;
+ box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.12);
+ /* Bottom corners only */
+ border-radius: 0 0 var(--borderRadiusSm) var(--borderRadiusSm);
+ background-color: var(--colorWhite);
+ position: sticky;
top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- visibility: hidden;
- z-index: 2;
- transform: translateX(360px);
- transition: all 0.5s ease;
- font-size: 14px;
- line-height: 1.4;
- padding: 0 24px;
}
-.report-issue-content {
+.fx-relay-menu-header-logo-bar {
display: flex;
- flex-direction: column;
- gap: 16px;
- padding: 0;
- border: 0 none;
+ justify-content: space-between;
+ width: 100%;
+ padding: var(--spacingSm);
}
-.report-section {
- margin-bottom: 8px;
+.fx-relay-menu-logo {
+ margin: 0;
+ padding: 0;
display: flex;
- gap: 8px;
- flex-direction: column;
+ flex-direction: row;
+ justify-content: center;
+ gap: var(--spacingSm);
}
-.report-label::after {
- content: ":";
+.fx-relay-menu-logo-image-fx-relay {
+ width: 26px;
}
-.report-section ul {
- list-style-type: none;
- padding: 0;
- margin: 0;
+.fx-relay-menu-logo-text {
+ width: 104px;
+ /* Optical offset to center "Firefox Relay" text in logo */
+ margin-top: 2px;
}
-.report-section li {
+.fx-relay-menu-header-navigation {
display: flex;
- align-items:flex-start;
- margin-bottom: 8px;
-}
-
-.report-section input[type=checkbox]{
- margin-right: 8px;
-}
-
-.report-section input[type=text]{
- width: 100%;
- padding: 4px;
+ gap: var(--spacingXs);
}
-.report-section input[type=submit]:disabled{
- background: var(--colorInformationalDisabled);
+.fx-relay-menu-dashboard-link {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ font-size: var(--fontSizeBodySm);
+ position: relative;
+ width: 32px;
+ height: 32px;
+ appearance: none;
+ outline: 0;
+ border: 0;
+ background-color: transparent;
}
-.report-success {
- padding-top: 24px;
+.fx-relay-menu-dashboard-link .news-count {
+ position: absolute;
+ right: calc(var(--spacingXs) * -1);
+ top: calc(var(--spacingXs) * -1);
+ border-radius: 100%;
+ width: 16px;
+ height: 16px;
+ font-size: var(--fontSizeBodyXs);
display: flex;
- flex-direction: column;
justify-content: center;
align-items: center;
+ background-color: var(--colorError);
+ color: var(--colorWhite);
}
-.report-success h1 {
- font-weight: 700;
- font-size: 16px;
+.news-count.is-hidden {
+ display: none;
}
-.report-continue {
- cursor: pointer;
- color: var(--relayBlue3);
+/* Default icon width */
+.fx-relay-menu-dashboard-link img {
+ pointer-events: none;
+ width: 14px;
+ filter: grayscale(1);
}
-.setting {
- padding: 12px 0;
- border-bottom: 1px solid var(--relayGrey20);
- display: flex;
- justify-content: space-between;
+.fx-relay-menu-dashboard-link:focus-within img,
+.fx-relay-menu-dashboard-link.is-active img,
+.fx-relay-menu-dashboard-link:hover img {
+ filter: grayscale(0);
}
-.flex-col {
- flex-direction: column;
+.fx-relay-menu-dashboard-link[data-panel-id="settings"] img {
+ width: 16px;
}
-.setting-label {
- display: inline-block;
- color: var(--relayInk70);
+.fx-relay-menu-dashboard-link.is-active,
+.fx-relay-menu-dashboard-link:hover,
+.fx-relay-menu-dashboard-link:focus {
+ background-color: var(--colorGrey10);
+ border-radius: 100%;
}
-a.setting-label {
- text-decoration: none;
+.fx-relay-menu-dashboard-link.is-active .fx-relay-menu-dashboard-link-tooltip,
+.fx-relay-menu-dashboard-link .fx-relay-menu-dashboard-link-tooltip {
+ display: none;
+ color: var(--colorWhite);
+ background-color: var(--colorGrey40);
+ border-radius: var(--borderRadiusSm);
+ padding: var(--spacingXs) var(--spacingSm);
+ position: absolute;
+ top: calc(100% + var(--spacingXs));
+ right: 0;
+ white-space: nowrap;
}
-a.setting-label:hover {
- background-color: var(--relayGrey20);
+.fx-relay-menu-dashboard-link:hover .fx-relay-menu-dashboard-link-tooltip,
+.fx-relay-menu-dashboard-link:focus .fx-relay-menu-dashboard-link-tooltip,
+.fx-relay-menu-dashboard-link:focus-visible .fx-relay-menu-dashboard-link-tooltip {
+ display: block;
+ margin: 0 var(--spacingXs);
}
-a.setting-label:focus {
- box-shadow: var(--relayButtonFocus);
-}
+/* Panel Header */
-a.setting-label:active {
- background-color: var(--relayGrey30);
+.fx-relay-panel-header {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
}
-.settings-list {
- padding: 0;
- margin: 0;
- list-style-type: none;
+.fx-relay-panel-header-btn-back {
+ position: absolute;
+ left: var(--spacingSm);
+ appearance: none;
+ background-color: transparent;
+ border: 0;
margin: 0;
+ padding: var(--spacingXs);
+ cursor: pointer;
}
-.setting-link {
- margin-bottom: 12px;
+.fx-relay-panel-header-btn-back:focus,
+.fx-relay-panel-header-btn-back:hover {
+ background-color: var(--colorGrey10);
+ border-radius: 100%;
}
-.setting-link:last-of-type {
- margin-bottom: 0;
+.fx-relay-panel-header-btn-back img {
+ display: block;
+ width: 24px;
+ height: 24px;
+ pointer-events: none;
}
-fx-relay-logo-wrapper {
- background-color: white;
+.fx-relay-panel-header-title {
+ font-size: var(--fontSizeBodyMd);
+ font-family: var(--relayMetropolis);
+ font-weight: 500;
}
-.settings-header,
-fx-relay-logo-wrapper {
+/* Sign Up/In Panel */
+sign-up-panel {
+ height: 100%;
display: flex;
- flex-direction: row;
- justify-content: flex-start;
- align-items: center;
- padding: 0 24px 0 24px;
- width: 100%;
- min-height: 64px;
- height: 64px;
- max-height: 64px;
-}
-
-.show-settings settings {
- visibility: visible;
- transform: translateX(0);
- transition: all 0.3s ease;
+ flex-direction: column;
+ font-size: var(--fontSizeBodySm);
+ position: relative;
}
-.show-settings fx-relay-logo-wrapper,
-.show-settings .signed-in-panel {
- opacity: 0;
- visibility: hidden;
- transition: all 0.3s ease;
+sign-up-panel::after {
+ height: 3px;
+ background: var(--relayFxGradient);
+ content: "";
+ position: absolute;
+ lefT: 0;
+ right: 0;
+ top: -1px;
+ background-size: 120%;
}
-.show-report-issue report-issue {
- visibility: visible;
- transform: translateX(0);
- transition: all 0.3s ease;
+.fx-relay-sign-in-copy {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ text-align: center;
+ padding-top: var(--layoutSm);
}
-.show-report-issue fx-relay-logo-wrapper,
-.show-report-issue settings {
- opacity: 0;
- visibility: hidden;
- transition: all 0.3s ease;
+.fx-relay-sign-in-copy img {
+ margin-bottom: var(--spacingMd);
}
-fx-relay-logo-wrapper,
-.signed-in-panel {
- opacity: 1;
- transition: all 0.5s ease;
+.fx-relay-sign-in-copy h4 {
+ font-size: var(--fontSizeTitleXs);
+ font-weight: 700;
+ color: var(--colorGrey50);
+ margin: 0 0 var(--spacingMd);
+ padding: 0;
}
-.settings-hl {
- margin: auto;
- justify-content: center;
- text-align: center;
- font-size: 18px;
- font-family: var(--relayMetropolis);
- font-weight: 600;
+.fx-relay-sign-in-copy p {
+ color: var(--colorGrey50);
+ max-width: var(--contentXs);
+ margin: 0 auto;
}
-.close-settings {
- background-image: url("/images/arrowhead-left.svg");
- left: 24px;
+.fx-relay-sign-in-button {
+ position: fixed;
+ bottom: 0;
+ width: 100%;
+ left: 0;
+ padding: var(--spacingMd);
+ background-color: var(--colorGrey05);
}
-.open-settings {
- background-image: url("/images/preferences.svg");
- right: 24px;
+/* Settings */
+#settings-panel {
+ font-size: var(--fontSizeBodyXs);
}
-.settings-report-issue {
- cursor: pointer;
+.fx-relay-settings-toggles {
+ padding: 0 var(--spacingMd);
+ background-color: var(--colorWhite);
+ border-radius: var(--borderRadiusSm);
+ display: flex;
+ flex-direction: column;
}
-.settings-toggle:hover, .settings-report-issue-return:hover {
- opacity: .8;
+.fx-relay-settings-toggle-wrapper {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ width: 100%;
+ padding: var(--spacingMd) 0;
}
-.settings-toggle:focus, .settings-report-issue-return:focus {
- box-shadow: var(--relayButtonFocus);
+.fx-relay-settings-toggle-wrapper +
+.fx-relay-settings-toggle-wrapper {
+ border-top: 1px solid var(--colorGrey10);
}
-.settings-toggle:active, .settings-report-issue-return:active {
- opacity: 1;
+.fx-relay-settings-toggle {
+ display: block;
+ height: 16px;
+ width: 28px;
+ min-width: 28px;
+ position: relative;
+ overflow: hidden;
+ border: none;
+ border-radius: 1.5em;
+ outline: none;
+ background-color: var(--colorGreen50);
+ background-size: 20px;
+ margin: 0;
+ cursor: pointer;
}
-.settings-toggle, .settings-report-issue-return {
- border-radius: 50%;
- background-repeat: no-repeat;
- background-size: 18px;
- background-position: center center;
- height: 26px;
- width: 26px;
- position: absolute;
- background-color: rgba(255, 255, 255, 0);
- border: 1px solid rgba(255, 255, 255, 0);
+.fx-relay-settings-toggle:checked:hover {
+ background-color: var(--colorGreen60);
}
-.intro {
- margin: 0 auto 16px auto;
- max-width: 260px;
- color: var(--relayInkLight);
- line-height: 1.3;
- font-size: 15px;
+.fx-relay-settings-toggle:checked:focus {
+ box-shadow: var(--colorGreen20);
}
-.hidden,
-panel-content {
- transition: all 0.2s ease;
+.fx-relay-settings-toggle:checked:active {
+ background-color: var(--colorGreen70);
}
-panel-content {
- display: flex;
- flex-direction: column;
+.fx-relay-settings-toggle::after {
+ content: "";
+ height: 10px;
+ width: 10px;
+ border-radius: 50%;
+ background-color: rgba(255, 255, 255, 1);
position: absolute;
top: 0;
- right: 0;
- left: 0;
bottom: 0;
- overflow: hidden;
+ margin: auto;
+ right: var(--spacingXs);
+ transition: all 0.2s ease;
}
-.button {
- text-decoration: none;
+.data-disabled::after,
+.input-icons-disabled::after {
+ left: 4px;
+ right: 18px;
+ transition: all 0.2s ease;
}
-.welcome {
- font-weight: 800;
- font-size: 28px;
- line-height: 1.2;
- max-width: 260px;
- text-align: center;
- color: var(--relayInk);
- font-family: var(--relayMetropolisBold);
- margin: auto auto 8px auto;
+.data-disabled:hover,
+.data-disabled:focus,
+.input-icons-disabled:hover,
+.input-icons-disabled:focus {
+ background-color: var(--colorGrey40);
}
-.blue-primary-btn {
- display: flex;
- align-items: center;
- justify-content: center;
- background: var(--colorInformational);
- color: var(--relayInk);
- font-family: var(--relayMetropolis);
- font-weight: 800;
- font-size: 15px;
- border: 0 none;
- text-decoration: none;
- color: rgba(255, 255, 255, 1);
- min-width: 200px;
- min-height: 48px;
- margin: 0 auto auto auto;
- padding: 12px 16px;
- border-radius: 4px;
+.data-disabled:active,
+.input-icons-disabled:active {
+ background-color: var(--colorGrey50);
}
-.blue-primary-btn:hover {
- background: var(--relayBlueHover);
+.data-disabled,
+.input-icons-disabled {
+ background-color: var(--colorGrey30);
}
-.blue-primary-btn:focus {
- box-shadow: var(--relayButtonFocus);
+.fx-relay-settings-links {
+ display: flex;
+ flex-direction: column;
+ gap: var(--spacingSm);
+ padding: var(--spacingMd) 0;
}
-.blue-primary-btn:active {
- background: var(--relayBlueActive);
+.fx-relay-settings-link {
+ background-color: transparent;
+ padding: var(--spacingSm) var(--spacingMd);
+ text-decoration: none;
+ color: var(--colorBlack);
+ cursor: pointer;
+ appearance: none;
+ border: 0;
+ text-align: left;
+ font-size: var(--fontSizeBodyXs);
}
-.survey-link:hover {
- color: var(--relayBlueHover);
+.fx-relay-settings-link:hover,
+.fx-relay-settings-link:focus {
+ background-color: var(--colorViolet05);
+ border-radius: var(--borderRadiusSm);
}
-main-panel {
+/* Report Panel */
+
+.report-issue-content {
display: flex;
flex-direction: column;
- height: 100%;
+ gap: var(--spacingMd);
+ padding: var(--spacingMd);
+ border: 0 none;
+ font-size: var(--fontSizeBodySm);
}
-.text-link {
- font-weight: 700;
+.report-section {
+ margin-bottom: var(--spacingMd);
+ display: flex;
+ gap: var(--spacingMd);
+ flex-direction: column;
}
-.panel-status {
- display: flex;
- justify-content: space-between;
- padding: 8px 16px;
- line-height: 150%;
- font-size: 1rem;
- border-bottom: 1px solid var(--relayGrey20);
- border-top: 1px solid var(--relayGrey20);
- width: 100%;
- font-size: 13px;
- font-family: var(--relayInterUiRegular);
- margin-bottom: var(--spacingLg);
+.report-label::after {
+ content: ":";
}
-.aliases-remaining {
+.report-section ul {
+ list-style-type: none;
+ padding: 0;
margin: 0;
- font-family: var(--relayInterUiRegular);
- text-align: start;
+ display: flex;
+ flex-direction: column;
+ gap: var(--spacingMd);
}
-.premium-cta {
+.report-section li {
+ display: flex;
+ align-items: flex-start;
+ padding: 0;
margin: 0;
- font-family: var(--relayInterUiRegular);
- color: var(--colorInformational);
- font-weight: 700;
- text-decoration: none;
+ gap: var(--spacingSm);
}
-.premium-cta a {
+.report-section input[type=checkbox]{
margin: 0;
+ padding: 0;
+ color: var(--colorGrey50);
}
-.num-aliases-remaining,
-.max-num-aliases {
- font-weight: 700;
+.report-section input[type=checkbox]:checked + label {
+ color: var(--colorInformational);
}
-/*upgrade banner*/
-
-.upgrade-banner-wrapper {
- background: var(--relayGrey20);
- border-radius: 8px;
- padding: 10px;
- margin-top: 8px;
- display: flex;
- text-decoration: none;
+.report-section input[type=text]{
+ width: 100%;
+ padding: var(--spacingSm) var(--spacing2xl) var(--spacingSm) var(--spacingMd);
+ border-radius: var(--borderRadiusSm);
+ background-color: var(--colorWhite);
+ border: 2px solid transparent;
+ outline: 1px solid var(--colorGrey30);
}
-.upgrade-banner-wrapper img {
- width: 30px;
- height: 30px;
- margin: auto;
+.report-section input[type=text]:focus{
+ outline: 4px solid var(--colorInformationalFocus);
+ border: 2px solid var(--colorInformational);
}
-.upgrade-banner {
- font-family: var(--relayInterUiRegular);
- padding-left: 10px;
- color: #5953F3;
- margin: auto;
- font-weight: 700;
+.report-issue-content input[type=submit]:disabled{
+ background: var(--colorInformationalDisabled);
}
-footer {
+.report-success {
+ padding: var(--spacingMd);
+ padding-top: 0;
display: flex;
flex-direction: column;
+ justify-content: center;
align-items: center;
- margin: auto 0 0 0;
- padding-top: var(--spacingMd);
- border-top: 0.5px solid var(--colorGrey10);
-}
-
-.footer-button {
- width: 100%;
- font-size: 13px;
- padding-bottom: var(--spacingMd);
- color: var(--colorInformational);
- font-weight: 600;
- text-decoration: none;
- font-family: var(--relayInterUiRegular);
text-align: center;
+ font-size: var(--fontSizeBodyMd);
}
-.footer-button:hover {
- color: var(--colorInformationalHover)
+.report-image-success {
+ max-width: 200px;
}
-.footer-button:active {
- background-color: var(--relayGrey50);
+.report-success h1 {
+ font-weight: 600;
+ font-size: var(--fontSizeBodyMd);
}
-.footer-button:focus {
- color: var(--colorInformationalFocus)
+.report-continue {
+ margin-top: var(--spacingLg);
+ cursor: pointer;
+ color: var(--colorInformational);
+ appearance: none;
+ background-color: transparent;
+ border: 0;
}
-/* onboarding */
+/* Stats */
+.dashboard-stats-list {
+ width: 100%;
+ border-radius: var(--borderRadiusSm);
+ padding: 0 var(--spacingLg);
+ font-size: var(--fontSizeBodySm);
+ background: var(--colorWhite);
+ margin-bottom: var(--spacingMd);
+}
-onboarding-panel {
- font-size: 14px !important;
- padding: 8px 30px 30px 30px;
+.dashboard-stats-list ul {
+ list-style-type: none;
+ padding: 0;
display: flex;
- align-items: flex-start;
- height: 100%;
flex-direction: column;
- position: relative;
- transition: all 0.2s ease;
- background: white;
-}
-
-/* Premium Panel */
-
-.premiumPanel {
- padding: 8px 16px 0px 16px;
- font-family: var(--relayInterUiRegular);
-}
-
-.content-wrapper, .premium-wrapper {
- display: flex;
- width: 100%;
- flex-direction: column;
- gap: var(--spacingSm);
-}
-
-.end-of-intro-pricing-wrapper {
- display: flex;
- height: 360px;
- width: 100%;
- flex-direction: column;
- justify-content: space-around;
-}
-
-.dashboard-stats-list {
- width: 100%;
- border-radius: 8px;
- padding: 0 15px;
- font-size: 13px;
- background: #F7F7F7;
-}
-
-.dashboard-stats-list ul {
- list-style-type: none;
- padding: 0;
}
.dashboard-stats-list li:first-child {
font-weight: 600;
- padding-bottom: 12px;
-}
-
-.dashboard-stats-list li:nth-child(2) {
- padding: 12px 0;
-}
-
-.dashboard-stats-list li:nth-child(3) {
- padding: 12px 0;
+ color: var(--colorBlack)
}
.dashboard-stats-list li:not(:first-child){
- border-top: 1px solid var(--relayGrey20);
- padding-top: 12px;
- padding-left: 30px;
+ padding-left: var(--spacingLg);
+ color: var(--colorGrey50)
}
.dashboard-info {
display: flex;
flex-direction: row;
justify-content: space-between;
+ padding: var(--spacingMd) 0;
+}
+
+.dashboard-info + .dashboard-info {
+ border-top: 1px solid var(--colorGrey10);
}
.dashboard-info::before {
content: "";
+ /* Custom size/positioning for icon on the stat row */
width: 20px;
height: 20px;
- margin-left: -25px;
+ margin-left: -25px;
position: absolute;
background-repeat: no-repeat;
background-color: rgba(0, 0, 0, 0);
transition: opacity 0.2s ease;
}
-.dashboard-info:nth-child(2)::before {
+.dashboard-info-emails-blocked::before {
background-image: url("/icons/blocked-icon.svg");
}
-.dashboard-info:nth-child(3)::before {
+.dashboard-info-emails-forwarded::before {
background-image: url("/icons/forward-icon.svg");
}
-.dashboard-info:nth-child(4)::before {
+.dashboard-info-trackers-removed::before {
background-image: url("/icons/email-trackers-icon.svg");
}
@@ -549,452 +544,542 @@ onboarding-panel {
align-items: right;
}
-.email-domain-illustration {
- margin: 0 auto;
- display: block;
- height: 80px;
-}
+/* News */
-.register-domain-component {
- margin: 0 auto;
- padding-top: var(--spacingMd);
+.fx-relay-news {
display: flex;
flex-direction: column;
- height: auto;
- gap: var(--spacingSm);
+ gap: var(--spacingXs);
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+ text-align: left;
+ align-items: flex-start;
+ justify-content: left;
}
-.register-domain-cta {
- max-width: 200px;
- font-size: 1rem;
- padding: var(--spacingXs) var(--spacingSm);
- text-align: center;
+.fx-relay-news-item button {
+ appearance: none;
+ outline: none;
+ border: none;
+ background-color: transparent;
+ background-color: var(--colorWhite);
+ border-radius: var(--borderRadiusSm);
+ padding: var(--spacingMd);
+ cursor: pointer;
+ display: flex;
+ gap: var(--spacingMd);
}
-.register-domain-headline {
- font-weight: 700;
- font-size: 14px;
- text-align: center;
+.fx-relay-news-item button:focus,
+.fx-relay-news-item button:hover {
+ background-color: var(--colorPurple05)
}
-.educational-component {
- display: flex;
- flex-direction: row;
- padding: var(--spacingSm) 0;
- justify-content: space-between;
- height: auto;
- gap: var(--spacingMd);
- align-items: start;
+.fx-relay-news-item-image {
+ pointer-events: none;
+ max-width: var(--layoutMd);
+ flex-shrink: 0;
+ flex-grow: 0;
}
-.education-description {
- display: flex;
- flex-direction: column;
- flex: 2;
+.fx-relay-news-item-image img {
+ display: block;
width: 100%;
}
-.education-img-wrapper {
- display: flex;
- justify-content: center;
- align-items: center;
- flex: 1.5;
- height: auto;
- max-width: 120px;
+.fx-relay-news-item-content {
+ text-align: left;
+ pointer-events: none;
+ width: 100%;
}
-#bundle-phones-promo #panel1 .education-img-wrapper,
-#bundle-phones-promo #panel2 .education-img-wrapper
- {
- box-shadow: var(--boxShadowSm);
- border-radius: var(--borderRadiusMd);
- display: flex;
- justify-content: center;
- align-items: center;
+.fx-relay-news-item-hero {
+ font-weight: 600;
+ font-size: var(--fontSizeBodyMd);
+ margin: 0 0 var(--spacingXs);
+ line-height: 20px;
+}
+
+.fx-relay-news-item-body {
+ font-size: var(--fontSizeBodySm);
+ line-height: 20px;
+ display: -webkit-box;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
overflow: hidden;
- object-fit: cover;
- height: auto;
}
-.education-img {
- width: 100%;
- height: auto;
- justify-content: center;
- align-items: center;
- display: flex;
+.fx-relay-news-story-link {
+ margin-top: var(--spacingMd);
+ color: var(--colorInformational);
+ display: block;
+ text-decoration: none;
}
-.education-headline {
- font-family: var(--relayInterUiRegular);
- font-weight: 700;
- font-size: 15px;
+.fx-relay-news-story-link:focus {
+ color: var(--colorInformationalFocus);
}
-.onboarding-h1, .educational-headline {
- font-size: 15px;
- font-family: var(--relayMetropolis);
- margin: 0;
+.fx-relay-news-story-link:hover {
+ color: var(--colorInformationalActive);
}
-onboarding-panel p, .education-body {
- text-align: start;
- margin: 0;
- font-size: 12.5px;
- line-height: 130%;
+.fx-relay-news-story img {
+ display: block;
+ width: 100%;
}
-/* Add this class if description is too long */
-.small-font-size {
- font-size: 11px;
+/* Masks Panel */
+
+.fx-relay-masks-available-count {
+ color: var(--colorGrey40);
+ font-size: var(--fontSizeBodySm);
+ display: inline-block;
+ margin-bottom: var(--spacingSm);
}
-.onboarding-cta {
- cursor: pointer;
- font-weight: 600;
- font-size: 12.5px;
- line-height: 170%;
- text-decoration: underline;
- color: var(--colorInformational);
- align-self: flex-start;
+.fx-relay-masks-limit-upgrade {
+ background-color: var(--colorErrorHover);
+ border-radius: var(--borderRadiusSm);
+ padding: var(--spacingSm);
+ color: var(--colorWhite);
+ font-size: var(--fontSizeBodyXs);
+ display: flex;
+ justify-content: center;
+ gap: var(--spacingSm);
+ margin-bottom: var(--spacingSm);
}
-.js-new-label {
+.fx-relay-masks-error-message {
+ background-color: var(--colorError);
+ border-radius: var(--borderRadiusSm);
+ color: var(--colorWhite);
+ font-size: var(--fontSizeBodyXs);
display: none;
+ margin-bottom: var(--spacingSm);
+ align-items: stretch;
+ padding: 0;
+ cursor: pointer;
+ overflow: hidden;
}
-.onboarding-cta:hover {
- color: var(--colorInformationalHover);
+.fx-relay-masks-error-message:hover {
+ background-color: var(--colorErrorHover);
}
-.onboarding-cta:focus {
- color: var(--colorInformationalFocus);
+.fx-relay-masks-error-message:active {
+ background-color: var(--colorErrorActive);
}
-.onboarding-img {
- width: 100%;
+.fx-relay-masks-error-message:focus .fx-relay-masks-error-message-icon {
+ background-color: var(--colorErrorHover);
}
-.img-wrapper {
- max-height: 100%;
- overflow: hidden;
- text-align: center;
- margin: 0;
+.fx-relay-masks-error-message-string {
+ padding: var(--spacingSm) var(--spacingMd);
}
-.maxAliasesPanel .onboarding-pagination {
- display: none !important;
+.fx-relay-masks-error-message-icon {
+ width: 40px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ background-color: var(--colorError);
}
-.maxAliasesPanel .onboarding-img {
- width: 200px;
+.fx-relay-masks-error-message.is-shown {
+ display: flex;
}
-.survey-link {
- color: var(--colorInformational);
- margin: 12px auto 0 0;
- border-radius: 2px;
+.fx-relay-masks-error-message > * {
+ pointer-events: none;
}
-.onboarding-pagination {
- position: absolute;
+.fx-relay-no-masks-created {
display: flex;
- bottom: var(--spacingSm);
+ flex-direction: column;
justify-content: center;
- flex-direction: row;
- left: 0;
- right: 0;
- margin: auto;
+ align-items: center;
+ text-align: center;
+ padding-top: var(--layoutLg);
}
-.panel-nav, .premium-panel-nav {
- border: none;
- outline: none;
- border-radius: 50%;
- width: 15px;
- padding: 4px;
- position: relative;
- background-color: rgba(0, 0, 0, 0);
+.fx-relay-no-masks-created img {
+ max-width: var(--contentXs);
+ margin-bottom: var(--spacingMd);
}
-.panel-nav::after, .premium-panel-nav::after {
- content: "";
- display: inline-block;
- position: absolute;
- top: 0;
- right: 0;
- left: 0;
- bottom: 0;
- background-position: center center;
- background-size: 90%;
- background-repeat: no-repeat;
- background-image: url("/images/arrowhead-left.svg");
- opacity: .4;
- transition: opacity 0.2s ease;
+.fx-relay-no-masks-created h2 {
+ font-size: var(--fontSizeTitleXs);
+ font-weight: 700;
+ color: var(--colorGrey50);
+ margin: 0 auto var(--spacingMd);
+ max-width: var(--content2xs);
}
-.settings-toggle:hover::after, .settings-report-issue-return:hover::after,
-.panel-nav:hover::after, .premium-panel-nav:hover::after {
- opacity: .8;
- transition: opacity 0.2s ease;
+.fx-relay-no-masks-created p {
+ font-size: var(--fontSizeBodySm);
+ max-width: var(--contentXs);
+ padding: 0;
+ margin: 0 0 var(--spacingLg);
}
-.settings-toggle:focus, .settings-report-issue-return:focus,
-.panel-nav:focus, .js-panel-nav:focus {
- box-shadow: var(--relayButtonFocus);
+.fx-relay-generate-mask-buttons {
+ border-top: 1px solid var(--colorGrey10);
+ position: fixed;
+ bottom: 0;
+ width: 100%;
+ left: 0;
+ padding: var(--spacingMd);
+ background-color: var(--colorGrey05);
+ display: flex;
+ gap: var(--spacingMd);
+ flex-direction: column;
}
-.settings-toggle:active::after, .settings-report-issue-return:active::after,
-.panel-nav:active::after, .premium-panel-nav:active::after {
- opacity: 1;
- transition: opacity 0.2s ease;
+/* Mask List/Item */
+
+.fx-relay-mask-list {
+ list-style: none;
+ margin: 0;
+ padding: 0;
}
-.next-panel::after {
- transform: rotate(180deg);
+.fx-relay-mask-item {
+ display: flex;
+ flex-direction: column;
+ border-radius: var(--borderRadiusSm);
+ padding: var(--spacingSm);
+ position: relative;
}
-.panel-num, .js-panel-num {
- width: auto;
- margin: 0;
- text-align: center;
- justify-self: center;
+.fx-relay-mask-item-new-mask-created {
+ /* opacity: 1; */
+ opacity: 0;
+ pointer-events: none;
+ transition: opacity 2s;
+ background-color: var(--colorGreen50);
+ border-radius: var(--borderRadiusSm);
+ padding: var(--spacingXs) var(--spacingSm);
+ font-size: var(--fontSizeBodyXs);
+ font-weight: 500;
+ /*
+ By allowing this to overlap other elements,
+ we don't need to reserve empty space for it.
+ Otherwise, this empty space would push the
+ .expand-toggle out of the card on small screens:
+ */
+ position: absolute;
+ left: var(--spacingSm);
+ top: 100%;
+ transform: translateY(-50%);
+ /* Z-index usage: raise element above other mask cards */
+ z-index: 1;
}
-.current-panel,
-.panel-num, .js-panel-num {
- font-weight: 600;
- font-size: 14px;
- padding: 0 var(--spacingXs);
- text-align: center;
- display: inline;
+.fx-relay-mask-item.is-new-mask .fx-relay-mask-item-new-mask-created {
+ pointer-events: auto;
+ opacity: 1;
+ /* Don't fade in when appearing: */
+ transition: opacity 0s;
}
-.current-panel, .total-panels {
- margin: 0 var(--spacingXs);
- padding-right: var(--spacingXs);
+.fx-relay-mask-item:focus-within,
+.fx-relay-mask-item:focus,
+.fx-relay-mask-item:hover {
+ background-color: var(--colorPurple05);
}
+.fx-relay-mask-item-label {
+ font-size: var(--fontSizeBodyXs);
+ color: var(--colorGrey40);
+ overflow: hidden;
+ display: block;
+ line-height: 1;
+}
+.fx-relay-mask-item-address-bar {
+ display: flex;
+ align-items: center;
+ gap: var(--spacingMd);
+}
-/* For mobile screens with a bigger height viewport than the browser popup.
- This takes the --panelHeight + 1px as its min-height. */
+.fx-relay-mask-item-address-wrapper {
+ display: flex;
+ gap: var(--spacingXs);
+ flex-direction: column;
+ width: calc( 100% - var(--spacingMd));
+ position: relative;
+ text-overflow: ellipsis;
+ overflow: hidden;
+}
-/* TODO: Understand why this exists before removing */
-/* @media screen and (min-height: 501px) {
- .fx-relay-panel {
- height: 100vh;
- }
+.fx-relay-mask-item-address {
+ user-select: all;
+ font-size: var(--fontSizeBodyMd);
+ font-weight: 600;
+ color: var(--colorGrey50);
+ cursor: pointer;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
- fx-relay-logo-wrapper {
- margin-top: 2rem;
- }
+.fx-relay-mask-item-address::selection {
+ background: var(--colorPurple10);
+}
- fx-relay-logomark {
- width: 48px;
- height: 50px;
- }
+.fx-relay-mask-item-address-actions {
+ margin-left: auto;
+ display: flex;
+ gap: var(--spacingSm);
+ position: relative;
+}
- fx-relay-logotype {
- width: 70%;
- height: 50px;
- }
+.fx-relay-mask-item-address-actions > button {
+ appearance: none;
+ border: 0;
+ border-radius: 100%;
+ width: 32px;
+ height: 32px;
+ background-repeat: no-repeat;
+ background-position: center;
+ filter: grayscale(1);
+ cursor: pointer;
+}
- .intro {
- margin-top: 5rem;
- margin-bottom: 2rem;
- }
+.fx-relay-mask-item-address-actions > button:focus,
+.fx-relay-mask-item-address-actions > button:hover {
+ background-color: white;
+ filter: grayscale(0);
+}
- .intro,
- .alias,
- .error-message {
- font-size: 1rem;
- }
+.fx-relay-mask-item-address-copy {
+ background-image: url(/icons/nebula-copy-text.svg);
+}
- .text-link {
- border-bottom: 1px solid var(--relayInk);
- }
+.fx-relay-mask-item-address-copy-success {
+ opacity: 0;
+ pointer-events: none;
+ transition: opacity 2s;
+ background-color: var(--colorGreen50);
+ border-radius: var(--borderRadiusSm);
+ padding: var(--spacingXs) var(--spacingSm);
+ font-size: var(--fontSizeBodyXs);
+ font-weight: 500;
+ /*
+ By allowing this to overlap other elements,
+ we don't need to reserve empty space for it.
+ Otherwise, this empty space would push the
+ .expand-toggle out of the card on small screens:
+ */
+ position: absolute;
+ right: calc(100% + var(--spacingSm));
+ top: 50%;
+ transform: translateY(-50%);
+}
- .create-account {
- font-size: 1.1rem;
- padding: 1rem 3rem;
- }
+.fx-relay-mask-item-address-copy-success.is-shown {
+ pointer-events: auto;
+ opacity: 1;
+ /* Don't fade in when appearing: */
+ transition: opacity 0s;
+}
- alias-creation {
- margin-top: 12rem;
- }
+.fx-relay-mask-item-address-toggle {
+ background-image: url(/icons/nebula-arrow-up-down.svg);
+}
- .view-dashboard {
- margin: auto auto 0 auto;
- }
-} */
+/* Loading Bar */
-.newsflash-wrapper.is-hidden, .newsflash-wrapper .is-hidden {
+/* Page Loader */
+.fx-relay-menu-loading-bar {
+ width: 100%;
+ height: 5px;
+ position: relative;
+ overflow: hidden;
display: none;
}
-.newsflash-wrapper {
- background-color: var(--relayGrey10);
- padding: 8px;
- margin-top: 16px;
- height: 100%;
+.fx-relay-menu-loading-bar-wrapper {
+ width: 100%;
+ height: 2px;
+ position: absolute;
+ left: 50%;
+ top: 1px;
}
-.newsflash-description {
- padding: 0 8px;
+.fx-relay-menu-loading-bar-border {
+ height: 100%;
+ width: 100%;
+ position: relative;
+ left: -50%;
+ top: -50%;
+ padding: 0;
+ background-color: var(--colorViolet20);
+ padding: 0;
}
-.newsflash-headline {
- background: white;
- font-size: 15px;
- font-weight: bold;
- padding: 12px 12px 12px 48px;
- border-radius: 8px;
- box-shadow: 0 5px 10px -3px rgba(29, 17, 51, .12);
- font-family: var(--relayMetropolis);
+.fx-relay-menu-loading-bar-whitespace {
+ overflow: hidden;
+ height: 100%;
+ width: 100%;
+ margin: 0 auto;
+ overflow: hidden;
+ position: relative;
}
-.newsflash-headline:before {
- content: "";
- display: inline-block;
- height: 20px;
- width: 20px;
- margin-left: -32px;
- margin-top: -3px;
- background-image: url("/images/icon-orange-info.svg");
- background-size: 20px;
- background-repeat: no-repeat;
- background-position: center center;
+.fx-relay-menu-loading-bar-line {
position: absolute;
+ height: 100%;
+ width: 60%;
+ background-color: var(--colorViolet70);
+ animation: cssload-slide 1s ease-in-out infinite;
}
-.newsflash-description a {
- color: var(--colorInformational);
- font-weight: bold;
- padding-top: 8px;
- text-decoration: none;
+@keyframes cssload-slide {
+ 0% {
+ left: -100%;
+ }
+
+ 100% {
+ left: 100%;
+ }
}
-.newsflash-wrapper:not(.has-approval-button) .newsflash-description a {
+.is-loading .fx-relay-menu-loading-bar {
display: block;
- text-align: center;
}
-.newsflash-wrapper:not(.has-approval-button) .newsflash-description a:hover {
- text-decoration: underline;
+
+.is-loading .fx-relay-menu {
+ min-height: 200px;
}
-.newsflash-body {
- padding-top: 8px;
+.is-loading .fx-relay-menu-content {
+ visibility: hidden;
}
-.newsflash-buttons {
+/* Mask - Generate Custom Panel */
+
+
+.fx-relay-panel-custom-mask-form {
display: flex;
- margin-top: 48px;
- justify-content: space-evenly;
+ flex-direction: column;
+ gap: var(--spacingMd);
+ padding: var(--spacingMd);
+ border: 0 none;
+ font-size: var(--fontSizeBodySm);
}
-.newsflash-buttons > button {
- width: 120px;
- padding: 8px 0;
- font-size: 15px;
- border-radius: 4px;
- font-weight: bold;
- text-align: center;
- text-decoration: none;
- border: 2px solid var(--colorInformational);
- cursor: pointer;
+.fx-relay-panel-custom-mask-input {
+ margin-bottom: var(--spacingMd);
+ display: flex;
+ gap: var(--spacingMd);
+ flex-direction: column;
}
-.newsflash-button-dismiss {
- color: var(--colorInformational);
- background: none;
+.fx-relay-panel-custom-mask-checkbox {
+ display: flex;
+ align-items: flex-start;
+ margin-bottom: var(--spacingMd);
+ position: relative;
}
-.newsflash-button-allow {
- background: var(--colorInformational);
- color: white;
+.fx-relay-panel-custom-mask-checkbox input[type=checkbox]{
+ margin: 2px var(--spacingSm) 0 0; /* Custom Alignment Issue with Checkbox and Label */
+ color: var(--colorGrey50);
}
-.newsflash-button-allow:hover,
-.newsflash-button-dismiss:hover {
- background: var(--relayBlueHover);
- color: white;
+.fx-relay-panel-custom-mask-checkbox input[type=checkbox]:checked + label {
+ color: var(--colorInformational);
}
-.newsflash-button-allow:focus,
-.newsflash-button-dismiss:focus {
- box-shadow: var(--relayButtonFocus);
+.fx-relay-panel-custom-mask-input input[type=text]{
+ width: 100%;
+ padding: var(--spacingSm) var(--spacing2xl) var(--spacingSm) var(--spacingMd);
+ border-radius: var(--borderRadiusSm);
+ background-color: var(--colorWhite);
+ border: 2px solid transparent;
+ outline: 1px solid var(--colorGrey30);
}
-.end-of-intro-pricing h1 {
- font-size: 1.3em;
+.fx-relay-panel-custom-mask-input-domain {
+ text-align: center;
}
-.end-of-intro-pricing p {
- line-height: 120%;
+.fx-relay-panel-custom-mask-input input[type=text]:focus{
+ outline: 4px solid var(--colorInformationalFocus);
+ border: 2px solid var(--colorInformational);
+}
+
+.fx-relay-panel-custom-mask-submit input[type=submit]:disabled{
+ background: var(--colorInformationalDisabled);
}
-.countdown-timer {
- align-self: center;
+.fx-relay-panel-custom-mask-copy {
+ font-size: var(--fontSizeBodySm);
+ padding: 0 var(--spacingMd) var(--spacingMd);
margin: 0;
- font-family: var(--relayMetropolisBold);
+ border-bottom: 1px solid var(--colorGrey10);
+ overflow-wrap: break-word;
+
}
-.countdown-timer dl {
- display: flex;
- gap: 8px;
+.fx-relay-panel-custom-mask-promo-blocking-icon {
+ width: 16px;
+ height: 16px;
+ margin-left: var(--spacingSm);
}
-.countdown-timer dl > div {
+.fx-relay-panel-custom-mask-promo-blocking-tooltip-wrapper:focus .fx-relay-panel-custom-mask-promo-blocking-tooltip,
+.fx-relay-panel-custom-mask-promo-blocking-tooltip-wrapper:hover .fx-relay-panel-custom-mask-promo-blocking-tooltip {
display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- gap: var(--spacingXs);
- width: var(--layoutLg);
- background-color: var(--colorViolet80);
- border-radius: 8px;
- color: white;
- border: 2px solid var(--colorWhite);
- box-shadow: 0px 5px 8px var(--colorGrey20);
- padding: 8px;
}
-.countdown-timer dt {
- font-weight: 600;
+.fx-relay-panel-custom-mask-promo-blocking-tooltip {
+ display: none;
+ position: absolute;
+ left: 0;
+ bottom: calc(100%);
+ padding: var(--spacingMd);
+ box-shadow: 0px 0px 4px var(--colorGrey20);
+ /* Z-index: This box floats above the content to display informatin on what promo blocking is */
+ z-index: 1;
+ background-color: var(--colorWhite);
+ border-radius: var(--borderRadiusSm);
+ flex-direction: column;
+ gap: var(--spacingSm);
+ /* This negative margin positions the promo blocking checkbox ABOVE the item */
+ margin-top: calc(var(--spacingMd) * -1);
}
-.countdown-timer dd {
- font-weight: 700;
- font-size: 2.3em;
+.fx-relay-panel-custom-mask-promo-blocking-tooltip h3 {
+ font-size: var(--fontSizeBodyMd);
margin: 0;
- font-family: var(--fontStackFirefoxBold);
+ padding: 0;
}
-.new-label {
- background: var(--colorViolet70);
- color: white;
- font-size: 0.75em;
- font-weight: 700;
- align-self: flex-start;
- text-transform: uppercase;
- border-radius: var(--spacingXs);
- padding: var(--spacingXs) var(--spacingSm);
+.fx-relay-panel-custom-mask-promo-blocking-tooltip p {
+ font-size: var(--fontSizeBodySm);
+ margin: 0;
+ padding: 0;
}
-.hidden {
- position: absolute;
- opacity: 0;
- visibility: hidden;
- pointer-events: none;
+.fx-relay-panel-custom-mask-promo-blocking-tooltip a {
+ font-size: var(--fontSizeBodySm);
+ margin: 0;
+ padding: 0;
}
-.is-hidden, .hidden {
- position: absolute;
- opacity: 0;
- visibility: hidden;
- pointer-events: none;
+/* Search Bar */
+
+.fx-relay-masks-search-form {
+ padding: var(--spacingXs) var(--spacingSm);
+ margin-bottom: var(--spacingSm);
+ position: relative;
+ display: none;
}
-.is-invisible {
- opacity: 0;
-}
\ No newline at end of file
+.fx-relay-masks-search-form.is-visible {
+ display: block;
+}
diff --git a/src/icons/nebula-arrow-up-down.svg b/src/icons/nebula-arrow-up-down.svg
new file mode 100644
index 000000000..7ea4f96d4
--- /dev/null
+++ b/src/icons/nebula-arrow-up-down.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/icons/nebula-back-arrow.svg b/src/icons/nebula-back-arrow.svg
new file mode 100644
index 000000000..285d42bc0
--- /dev/null
+++ b/src/icons/nebula-back-arrow.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/src/icons/nebula-close.svg b/src/icons/nebula-close.svg
new file mode 100644
index 000000000..6241155c9
--- /dev/null
+++ b/src/icons/nebula-close.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/icons/nebula-copy-text.svg b/src/icons/nebula-copy-text.svg
new file mode 100644
index 000000000..5d4d0f840
--- /dev/null
+++ b/src/icons/nebula-copy-text.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/icons/nebula-gear-purple.svg b/src/icons/nebula-gear-purple.svg
new file mode 100644
index 000000000..9ae95dc8d
--- /dev/null
+++ b/src/icons/nebula-gear-purple.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/icons/nebula-gear.svg b/src/icons/nebula-gear.svg
new file mode 100644
index 000000000..8cecfb025
--- /dev/null
+++ b/src/icons/nebula-gear.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/icons/nebula-gift-purple.svg b/src/icons/nebula-gift-purple.svg
new file mode 100644
index 000000000..fca7a66bc
--- /dev/null
+++ b/src/icons/nebula-gift-purple.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/icons/nebula-gift.svg b/src/icons/nebula-gift.svg
new file mode 100644
index 000000000..e5b6fa418
--- /dev/null
+++ b/src/icons/nebula-gift.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/icons/nebula-info.svg b/src/icons/nebula-info.svg
new file mode 100644
index 000000000..86c2a5c96
--- /dev/null
+++ b/src/icons/nebula-info.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/icons/nebula-link-purple.svg b/src/icons/nebula-link-purple.svg
new file mode 100644
index 000000000..aeffd3f3a
--- /dev/null
+++ b/src/icons/nebula-link-purple.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/icons/nebula-link.svg b/src/icons/nebula-link.svg
new file mode 100644
index 000000000..c09c277c6
--- /dev/null
+++ b/src/icons/nebula-link.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/icons/nebula-stats-purple.svg b/src/icons/nebula-stats-purple.svg
new file mode 100644
index 000000000..a17daecfc
--- /dev/null
+++ b/src/icons/nebula-stats-purple.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/icons/nebula-stats.svg b/src/icons/nebula-stats.svg
new file mode 100644
index 000000000..1b2f80d0b
--- /dev/null
+++ b/src/icons/nebula-stats.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/images/panel-images/announcements/panel-bundle-announcement-square.svg b/src/images/panel-images/announcements/panel-bundle-announcement-square.svg
new file mode 100644
index 000000000..70d7488e3
--- /dev/null
+++ b/src/images/panel-images/announcements/panel-bundle-announcement-square.svg
@@ -0,0 +1,46 @@
+
diff --git a/src/images/panel-images/announcements/panel-bundle-announcement.svg b/src/images/panel-images/announcements/panel-bundle-announcement.svg
index 28ddbd3f0..5c2deaabd 100644
--- a/src/images/panel-images/announcements/panel-bundle-announcement.svg
+++ b/src/images/panel-images/announcements/panel-bundle-announcement.svg
@@ -1,39 +1,39 @@
-