diff --git a/admin/src/utils/feature_flags.ts b/admin/src/utils/feature_flags.ts
index 7c3a9f68ff..bef862d182 100644
--- a/admin/src/utils/feature_flags.ts
+++ b/admin/src/utils/feature_flags.ts
@@ -6,7 +6,7 @@ export function hasPaidFeature(): boolean {
// If the user is not a turkey user then no need to check.
if (configs.ITA_SERVER != "turkey") return true;
- const authorizedTiers: PaidTiers[] = ["p1", "b1"];
+ const authorizedTiers: PaidTiers[] = ["p1", "b1","b0"];
return authorizedTiers.includes(configs.TIER);
}
diff --git a/src/bit-systems/mixer-animatable.ts b/src/bit-systems/mixer-animatable.ts
index 8609a277a1..48711af0eb 100644
--- a/src/bit-systems/mixer-animatable.ts
+++ b/src/bit-systems/mixer-animatable.ts
@@ -10,7 +10,7 @@ const mixerExitQuery = exitQuery(mixerQuery);
export function mixerAnimatableSystem(world: HubsWorld): void {
initializeEnterQuery(world).forEach(eid => {
- if (entityExists(world, eid)) {
+ if (!entityExists(world, eid)) {
console.warn("Skipping nonexistant entity."); // TODO Why does this happen?
return;
}
diff --git a/src/react-components/input/Button.scss b/src/react-components/input/Button.scss
index fa27af3771..e705448554 100644
--- a/src/react-components/input/Button.scss
+++ b/src/react-components/input/Button.scss
@@ -23,32 +23,37 @@
}
}
+:local(.basic) {
+ border: 2px solid theme.$basic-border-color;
+ background-color: theme.$basic-color;
+}
+
+:local(.transparent) {
+ border-color: theme.$background1-color;
+ background-color: theme.$background1-color;
+}
+
:local(.basic),
:local(.transparent) {
- color: theme.$text4-color;
+ color: theme.$text2-color;
border: 2px solid theme.$basic-border-color;
background-color: theme.$basic-color;
svg {
- color: theme.$text4-color;
+ color: theme.$text2-color;
}
&:hover {
- color: theme.$text4-color-hover;
+ color: theme.$text2-color-hover;
background-color: theme.$basic-color-hover;
}
&:active {
- color: theme.$text4-color-pressed;
+ color: theme.$text2-color-pressed;
background-color: theme.$basic-color-pressed;
}
}
-:local(.transparent) {
- border-color: theme.$transparent;
- background-color: theme.$transparent;
-}
-
:local(.primary) {
color: theme.$text5-color;
background-color: theme.$primary-color;
diff --git a/src/react-components/input/InputField.scss b/src/react-components/input/InputField.scss
index 226bef9bee..972d9ba87c 100644
--- a/src/react-components/input/InputField.scss
+++ b/src/react-components/input/InputField.scss
@@ -27,10 +27,11 @@
:local(.info) {
margin-top: 8px;
- color: theme.$text3-color;
+ color: theme.$text2-color;
align-self: flex-start;
}
-:local(.info), :local(.error) {
+:local(.info),
+:local(.error) {
font-size: 10px;
}
diff --git a/src/react-components/input/RadioInput.scss b/src/react-components/input/RadioInput.scss
index 12190d09ab..716da53549 100644
--- a/src/react-components/input/RadioInput.scss
+++ b/src/react-components/input/RadioInput.scss
@@ -30,6 +30,7 @@
align-self: center;
position: relative;
appearance: none;
+ cursor: pointer;
-moz-appearance: none;
-webkit-appearance: none;
@@ -77,10 +78,12 @@
:local(.label) {
font-size: theme.$font-size-sm;
font-weight: theme.$font-weight-bold;
+ color: theme.$text1-color;
}
:local(.description) {
margin-top: 4px;
font-size: theme.$font-size-xs;
font-weight: theme.$font-weight-regular;
-}
\ No newline at end of file
+ color: theme.$text2-color;
+}
diff --git a/src/react-components/input/TextInput.scss b/src/react-components/input/TextInput.scss
index b7e5c34929..bef6bcb84b 100644
--- a/src/react-components/input/TextInput.scss
+++ b/src/react-components/input/TextInput.scss
@@ -11,7 +11,7 @@ $input-height: 40px;
color: theme.$text1-color;
overflow: hidden;
- &:focus-within {
+ &:focus-within {
border-color: theme.$input-outline-color;
box-shadow: 0 0 0 2px theme.$input-outline-color;
}
@@ -22,7 +22,8 @@ $input-height: 40px;
height: 100%;
}
-:local(.before-input), :local(.after-input) {
+:local(.before-input),
+:local(.after-input) {
display: flex;
height: $input-height;
align-items: center;
@@ -35,11 +36,10 @@ $input-height: 40px;
border-width: 0;
min-height: auto;
border: none;
-
+
&:hover {
- border:none;
+ border: none;
}
-
:global(.keyboard-user) &:focus {
border-width: 0;
@@ -50,7 +50,7 @@ $input-height: 40px;
border-top-left-radius: theme.$border-radius-regular;
border-bottom-left-radius: theme.$border-radius-regular;
}
-
+
&:last-child {
margin-left: 1px;
box-shadow: inset 0 0 0 3px theme.$outline-color, 1px 0 0 2px theme.$outline-color;
@@ -58,13 +58,13 @@ $input-height: 40px;
border-bottom-right-radius: theme.$border-radius-regular;
}
}
-
}
- :local(.icon-button), & > svg {
+ :local(.icon-button),
+ & > svg {
padding: 0;
margin-left: 8px;
-
+
&:last-child {
margin-right: 8px;
}
@@ -92,7 +92,7 @@ $input-height: 40px;
:local(.invalid) {
border-color: theme.$error-color !important;
- &:focus-within {
+ &:focus-within {
box-shadow: 0 0 0 2px theme.$error-color;
}
}
@@ -108,6 +108,10 @@ $input-height: 40px;
&:focus {
box-shadow: none;
}
+
+ &::placeholder {
+ color: theme.$text3-color;
+ }
}
:local(.invalid-icon) {
diff --git a/src/react-components/input/ToggleInput.scss b/src/react-components/input/ToggleInput.scss
index 38fc75647a..dd5daa297f 100644
--- a/src/react-components/input/ToggleInput.scss
+++ b/src/react-components/input/ToggleInput.scss
@@ -28,7 +28,6 @@
margin-left: 16px;
display: flex;
flex-direction: column;
- color: theme.$text2-color;
}
:local(.label) {
diff --git a/src/react-components/input/ToolbarButton.scss b/src/react-components/input/ToolbarButton.scss
index 723867f905..6faf090690 100644
--- a/src/react-components/input/ToolbarButton.scss
+++ b/src/react-components/input/ToolbarButton.scss
@@ -62,14 +62,14 @@
:local(.transparent) {
:local(.icon-container) {
border-color: theme.$toolbar-basic-border-color;
- background-color: theme.$transparent;
+ background-color: theme.$background1-color;
svg {
color: theme.$toolbar-basic-icon-color;
}
&:disabled,
&[disabled] {
- border-color: theme.$transparent;
+ border-color: theme.$background1-color;
background-color: theme.$disabled-bg-color;
svg {
color: theme.$disabled-icon-color;
diff --git a/src/react-components/layout/LoadingScreenLayout.scss b/src/react-components/layout/LoadingScreenLayout.scss
index 97a68881cb..41ce395652 100644
--- a/src/react-components/layout/LoadingScreenLayout.scss
+++ b/src/react-components/layout/LoadingScreenLayout.scss
@@ -12,10 +12,11 @@
bottom: 0;
top: 0;
background: theme.$loading-screen-background;
+ color: theme.$text1-color;
font-size: theme.$font-size-sm;
- @media(min-width: theme.$breakpoint-lg) and (min-height: theme.$breakpoint-vr) {
+ @media (min-width: theme.$breakpoint-lg) and (min-height: theme.$breakpoint-vr) {
font-size: theme.$font-size-md;
}
}
diff --git a/src/react-components/layout/Page.scss b/src/react-components/layout/Page.scss
index d11bafde22..451f81190c 100644
--- a/src/react-components/layout/Page.scss
+++ b/src/react-components/layout/Page.scss
@@ -4,19 +4,24 @@
box-sizing: border-box;
}
-html, body, :global(#root), :global(#ui-root), :global(.home-root) {
+html,
+body,
+:global(#root),
+:global(#ui-root),
+:global(.home-root) {
margin: 0;
- height:100%;
+ height: 100%;
}
body {
background: theme.$background1-color;
- color: theme.$text1-color;
}
-:global(#root), :global(#ui-root), :global(.home-root) {
- display:flex;
- flex-direction:column;
+:global(#root),
+:global(#ui-root),
+:global(.home-root) {
+ display: flex;
+ flex-direction: column;
}
h1 {
@@ -32,7 +37,7 @@ main {
order: -1;
flex: 1;
- @media(min-width: theme.$breakpoint-lg) {
+ @media (min-width: theme.$breakpoint-lg) {
order: 0;
display: flex;
flex-direction: column;
diff --git a/src/react-components/room/ContentMenu.scss b/src/react-components/room/ContentMenu.scss
index 790fd788f9..45ea5b6526 100644
--- a/src/react-components/room/ContentMenu.scss
+++ b/src/react-components/room/ContentMenu.scss
@@ -11,8 +11,9 @@
border-radius: 12px;
pointer-events: auto;
padding: 4px;
+ color: theme.$text1-color;
- @media(min-width: theme.$breakpoint-lg) {
+ @media (min-width: theme.$breakpoint-lg) {
top: 24px;
right: 24px;
}
@@ -76,4 +77,4 @@
:local(.disabled) {
pointer-events: none;
background-color: theme.$transparent;
-}
\ No newline at end of file
+}
diff --git a/src/react-components/room/MicSetupModal.js b/src/react-components/room/MicSetupModal.js
index 406de2e468..b75fd0ee7c 100644
--- a/src/react-components/room/MicSetupModal.js
+++ b/src/react-components/room/MicSetupModal.js
@@ -90,7 +90,11 @@ export function MicSetupModal({
checked={isMicrophoneMuted}
onChange={onChangeMicrophoneMuted}
/>
-
+
>
diff --git a/src/react-components/room/RoomEntryModal.scss b/src/react-components/room/RoomEntryModal.scss
index bb1168ef44..56b7920d68 100644
--- a/src/react-components/room/RoomEntryModal.scss
+++ b/src/react-components/room/RoomEntryModal.scss
@@ -28,13 +28,14 @@
h5 {
font-size: theme.$font-size-xs;
- color: theme.$grey;
+ color: theme.$text3-color;
margin-bottom: 4px;
}
p {
font-size: theme.$font-size-sm;
text-align: center;
+ color: theme.$text1-color;
@media (min-width: theme.$breakpoint-lg) and (min-height: theme.$breakpoint-vr) {
font-size: 20px;
diff --git a/src/react-components/room/components/ChatToolbarButton/ChatToolbarButton.tsx b/src/react-components/room/components/ChatToolbarButton/ChatToolbarButton.tsx
index 23f5813b50..54b608a575 100644
--- a/src/react-components/room/components/ChatToolbarButton/ChatToolbarButton.tsx
+++ b/src/react-components/room/components/ChatToolbarButton/ChatToolbarButton.tsx
@@ -14,9 +14,10 @@ const chatTooltipDescription = defineMessage({
type ChatToolbarButtonProps = {
onClick: () => void;
+ selected: boolean
};
-const ChatToolbarButton = ({ onClick }: ChatToolbarButtonProps) => {
+const ChatToolbarButton = ({ onClick, selected }: ChatToolbarButtonProps) => {
const { unreadMessages } = useContext(ChatContext);
const intl = useIntl();
const description = intl.formatMessage(chatTooltipDescription);
@@ -31,6 +32,7 @@ const ChatToolbarButton = ({ onClick }: ChatToolbarButtonProps) => {
icon={}
preset="accent4"
label={}
+ selected={selected}
/>
);
diff --git a/src/react-components/styles/global.scss b/src/react-components/styles/global.scss
index 4a0d496dc3..d956d1c1c3 100644
--- a/src/react-components/styles/global.scss
+++ b/src/react-components/styles/global.scss
@@ -74,8 +74,6 @@
--primary-color-pressed: #{theme.$blue-pressed};
--secondary-color: #{theme.$lightgrey};
- --secondary-color-hover: #{theme.$lightgrey-hover};
- --secondary-color-pressed: #{theme.$lightgrey-pressed};
--background1-color: #{theme.$white};
--background2-color: #{theme.$recessed-bg};
@@ -133,8 +131,6 @@
--favorite-color: #{theme.$yellow};
--error-color: var(--cancel-color);
- --error-color-hover: var(--cancel-color-hover);
- --error-color-pressed: var(--cancel-color-pressed);
--overlay-bg-color: rgba(0, 0, 0, 0.5);
--overlay-text-color: #{theme.$white};
@@ -149,7 +145,7 @@
--toolbar-basic-color-pressed: var(--secondary-color-pressed);
--toolbar-basic-border-color: var(--basic-border-color);
- --tile-text-color: var(--text4-color);
+ --tile-text-color: var(--text2-color);
--tile-bg-color: var(--secondary-color);
--tile-bg-color-hover: var(--secondary-color-hover);
--tile-bg-color-pressed: var(--secondary-color-pressed);
@@ -169,6 +165,7 @@ body {
height: 100%;
overflow: auto;
overscroll-behavior-y: none;
+ color: var(--text1-color);
}
body[data-theme="light"],
diff --git a/src/react-components/styles/theme.scss b/src/react-components/styles/theme.scss
index df7b50a541..af44a42c06 100644
--- a/src/react-components/styles/theme.scss
+++ b/src/react-components/styles/theme.scss
@@ -1,3 +1,4 @@
+// Breakpoints
// default below 576px (Portrait Phones)
$breakpoint-sm: 576px; // Landscape Phones
$breakpoint-md: 768px; // Tablets
@@ -6,6 +7,31 @@ $breakpoint-xl: 1200px; // Large Desktops
$breakpoint-xxl: 1600px; // Extra Large Desktops
$breakpoint-vr: 600px; // Standalone VR Browsers
+// Font styles
+$font-size-xs: 10px;
+$font-size-sm: 12px;
+$font-size-md: 14px;
+$font-size-lg: 20px;
+$font-size-xl: 24px;
+$font-size-2xl: 28px;
+
+$font-weight-regular: 400;
+$font-weight-medium: 500;
+$font-weight-bold: 700;
+
+// Border styles
+$border-radius-regular: 8px;
+$border-radius-small: 6px;
+
+// Spacing
+$spacing-2xs: 4px;
+$spacing-xs: 8px;
+$spacing-sm: 12px;
+$spacing-md: 16px;
+$spacing-lg: 20px;
+$spacing-xl: 24px;
+
+// Utility colors
$transparent: transparent;
$transparent-hover: rgba(0, 0, 0, 0.08);
$transparent-pressed: rgba(0, 0, 0, 0.12);
@@ -67,29 +93,6 @@ $discord-text2-color: #a3a3a3;
$discord-text3-color: rgb(127, 127, 127);
$discord-text4-color: rgb(64, 64, 64);
-$font-size-xs: 10px;
-$font-size-sm: 12px;
-$font-size-md: 14px;
-$font-size-lg: 20px;
-$font-size-xl: 24px;
-$font-size-2xl: 28px;
-
-$font-weight-regular: 400;
-$font-weight-medium: 500;
-$font-weight-bold: 700;
-
-$border-radius-regular: 8px;
-$border-radius-small: 6px;
-
-$outline-width: 3px;
-
-$spacing-2xs: 4px;
-$spacing-xs: 8px;
-$spacing-sm: 12px;
-$spacing-md: 16px;
-$spacing-lg: 20px;
-$spacing-xl: 24px;
-
// Theme SCSS Variables:
// Reference these variables in the Hubs codebase.
// The CSS variables they reference are defined in ./global.scss such that they are only included on the page once.
@@ -160,8 +163,6 @@ $primary-color-hover: var(--primary-color-hover);
$primary-color-pressed: var(--primary-color-pressed);
$secondary-color: var(--secondary-color);
-$secondary-color-hover: var(--secondary-color-hover);
-$secondary-color-pressed: var(--secondary-color-pressed);
$background1-color: var(--background1-color);
$background2-color: var(--background2-color);
@@ -219,8 +220,6 @@ $chat-bubble-bg-color-received: var(--chat-bubble-bg-color-received);
$favorite-color: var(--favorite-color);
$error-color: var(--error-color);
-$error-color-hover: var(--error-color-hover);
-$error-color-pressed: var(--error-color-pressed);
$overlay-bg-color: var(--overlay-bg-color);
$overlay-text-color: var(--overlay-text-color);
@@ -245,7 +244,7 @@ $tile-button-bg-color-hover: var(--tile-button-bg-color-hover);
$tile-button-bg-color-pressed: var(--tile-button-bg-color-pressed);
$tile-button-border-color: var(--tile-button-border-color);
-// Lilypad compatible variables (to eventually replace the above)
+// Mozilla Lilypad compatible variables
/**
PRIMARY INTERACTION
diff --git a/src/react-components/ui-root.js b/src/react-components/ui-root.js
index 0d01781e96..ddb29d4e65 100644
--- a/src/react-components/ui-root.js
+++ b/src/react-components/ui-root.js
@@ -177,6 +177,7 @@ class UIRoot extends Component {
enterInVR: false,
entered: false,
entering: false,
+ leaving: false,
dialog: null,
showShareDialog: false,
linkCode: null,
@@ -1646,6 +1647,7 @@ class UIRoot extends Component {
{!isLockedDownDemo && (
this.toggleSidebar("chat", { chatPrefix: "", chatAutofocus: false })}
+ selected={this.state.sidebarId === "chat"}
/>
)}
{entered && isMobileVR && (
@@ -1674,10 +1676,16 @@ class UIRoot extends Component {
icon={}
label={}
preset="cancel"
+ selected={!!this.state.leaving}
onClick={() => {
+ this.setState({ leaving: true });
this.showNonHistoriedDialog(LeaveRoomModal, {
destinationUrl: "/",
- reason: LeaveReason.leaveRoom
+ reason: LeaveReason.leaveRoom,
+ onClose: () => {
+ this.setState({ leaving: false });
+ this.closeDialog();
+ }
});
}}
/>