diff --git a/studio-frontend/src/app/app.element.scss b/studio-frontend/src/app/app.element.scss
index 3f82dac..c033475 100644
--- a/studio-frontend/src/app/app.element.scss
+++ b/studio-frontend/src/app/app.element.scss
@@ -53,8 +53,13 @@ $hierarchy-width: 290px;
border-radius: 0;
}
- .sidebar {
- display: grid;
+ sts-inspector {}
+
+
+
+ .sidebar, sts-inspector {
+ pointer-events: all;
+ // display: grid;
grid-area: sidebar;
grid-template-rows: subgrid;
z-index: 1;
@@ -63,8 +68,8 @@ $hierarchy-width: 290px;
position: relative;
- padding: var(--padding);
- padding-left: 0.5rem;
+ // padding: var(--padding);
+ // padding-left: 0.5rem;
.resize-handle {
position: absolute;
diff --git a/studio-frontend/src/app/app.element.ts b/studio-frontend/src/app/app.element.ts
index 11ed178..9942a34 100644
--- a/studio-frontend/src/app/app.element.ts
+++ b/studio-frontend/src/app/app.element.ts
@@ -37,6 +37,7 @@ import "@storyteller/studio-web/studio";
import "@storyteller/studio-web/transform-toolbar";
import "./anim-editor.element";
import "./help.element";
+import "./inspector.element";
import "./temp-video-preview.element";
import "./app.element.scss";
@@ -231,31 +232,7 @@ export class AppElement extends LitElement {
-
+
diff --git a/studio-frontend/src/app/bubble-select.element.scss b/studio-frontend/src/app/bubble-select.element.scss
index 31e7f57..2b255d4 100644
--- a/studio-frontend/src/app/bubble-select.element.scss
+++ b/studio-frontend/src/app/bubble-select.element.scss
@@ -1,10 +1,22 @@
@use "sass:math";
:host {
- // background: red;
+ font-family: "Fira Sans", sans-serif;
+ font-size: 15px;
+ color: #fff;
+
+ label {
+ display: block;
+ margin-bottom: .5rem;
+ }
+}
+
+.studio-bubble-options {
display: flex;
gap: 0.6rem;
box-sizing: border-box;
+ overflow-x: scroll;
+ padding: 4px 4px 1rem;
}
*, *::before, *::after {
@@ -12,6 +24,7 @@
}
.bubble {
+ // pointer-events: all;
position: relative;
flex: 0 0 auto;
display: flex;
@@ -26,9 +39,9 @@
}
outline: #FFF2 solid 2px;
- color: rgba(#fff, 0.75);
+ color: transparent;
transition: {
- property: background-color, outline-color;
+ property: color, background-color, outline-color;
duration: 200ms;
timing-function: ease;
}
@@ -49,9 +62,16 @@
.label {
position: relative;
+ // color: transparent;
+ width: 100%;
+ text-wrap: wrap;
font: {
size: math.div(12, 16) * 1rem;
weight: 500;
}
}
+
+ &:hover {
+ color: rgba(#fff, 0.75);
+ }
}
diff --git a/studio-frontend/src/app/bubble-select.element.ts b/studio-frontend/src/app/bubble-select.element.ts
index b08ca16..b233d9c 100644
--- a/studio-frontend/src/app/bubble-select.element.ts
+++ b/studio-frontend/src/app/bubble-select.element.ts
@@ -28,27 +28,30 @@ export class BubbleSelect extends FormFieldBaseElement {
}
protected override render = () => html`
- ${ this.options.map(({ label, value, imageUrl }) => html`
-
{
- // this.onChange({ target: { name: this.name, value: itemValue } });
- this.dispatchEvent(new CustomEvent("value-change", {
- detail: value,
- }))
- } }
- >
-
-
- ${ label }
-
-
`
- )}
+
+
+ ${ this.options.map(({ label, value, imageUrl }) => html`
+
{
+ // this.onChange({ target: { name: this.name, value: itemValue } });
+ this.dispatchEvent(new CustomEvent("value-change", {
+ detail: value,
+ }))
+ } }
+ >
+
+
+ ${ label }
+
+
`
+ )}
+
`
}
diff --git a/studio-frontend/src/app/inspector-tabs/style-tab.scss b/studio-frontend/src/app/inspector-tabs/style-tab.scss
index bb22278..38e1161 100644
--- a/studio-frontend/src/app/inspector-tabs/style-tab.scss
+++ b/studio-frontend/src/app/inspector-tabs/style-tab.scss
@@ -1,5 +1,27 @@
.inspector-input-set {
label {
display: block;
+ color: #fff;
+ margin-bottom: .5rem;
+ }
+ textarea {
+ background: var(--color-panel-item-name-background);
+ border: none;
+ box-sizing: border-box;
+ color: #fff;
+ font-family: "Fira Sans", sans-serif;
+ outline: none;
+ padding: .5rem;
+ border-radius: .5rem;
+ margin-bottom: 1rem;
+ resize: none;
+ width: 100%;
+ }
+
+ .sidebar-button-row {
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ margin-bottom: 1rem;
}
}
\ No newline at end of file
diff --git a/studio-frontend/src/app/inspector-tabs/style-tab.ts b/studio-frontend/src/app/inspector-tabs/style-tab.ts
index a8056f1..908e13d 100644
--- a/studio-frontend/src/app/inspector-tabs/style-tab.ts
+++ b/studio-frontend/src/app/inspector-tabs/style-tab.ts
@@ -154,8 +154,6 @@ export class StyleTab extends LitElement {
protected override render = (): TemplateResult => html`
`;
}
diff --git a/studio-frontend/src/app/inspector.element.scss b/studio-frontend/src/app/inspector.element.scss
new file mode 100644
index 0000000..4558967
--- /dev/null
+++ b/studio-frontend/src/app/inspector.element.scss
@@ -0,0 +1,15 @@
+:host {
+ font-family: "Fira Sans", sans-serif;
+ font-size: 15px;
+ color: #fff;
+
+ label {
+ display: block;
+ margin-bottom: .5rem;
+ }
+}
+
+
+.studio-sidebar-frame {
+ padding: 1rem;
+}
\ No newline at end of file
diff --git a/studio-frontend/src/app/inspector.ts b/studio-frontend/src/app/inspector.element.ts
similarity index 63%
rename from studio-frontend/src/app/inspector.ts
rename to studio-frontend/src/app/inspector.element.ts
index 2eb279e..244b7c9 100644
--- a/studio-frontend/src/app/inspector.ts
+++ b/studio-frontend/src/app/inspector.element.ts
@@ -1,16 +1,18 @@
import { LitElement, type PropertyValues, html, nothing, unsafeCSS } from "lit";
import { customElement, property, state } from "lit/decorators.js";
+import { createRef, ref } from "lit/directives/ref.js";
import "@storyteller/studio-ui/tree";
import "./tabs.element";
import "./bubble-select.element";
import "./inspector-tabs/style-tab";
import styles from "./inspector.element.scss?inline";
import "@storyteller/studio-ui/button";
+import "@storyteller/studio-web/scene-hierarchy";
// const abc = "word";
enum InspectorMode {
- Properties,
+ Hierarchy,
Style
}
@@ -20,10 +22,11 @@ export class Inspector extends LitElement {
@state() selectedTab = InspectorMode.Style;
@property() sceneToken = "";
@property() styleMediaToken = "";
+ #hierarchyRef = createRef
();
tabs = [{
- label: "Properties",
- value: InspectorMode.Properties
+ label: "Hierarchy",
+ value: InspectorMode.Hierarchy
},{
label: "Style",
value: InspectorMode.Style
@@ -33,28 +36,30 @@ export class Inspector extends LitElement {
console.log("๐๏ธ", this.styleMediaToken);
}
- propertiesTab = html`Properties
`;
+ propertiesTab = html``;
tabContent = () => {
switch (this.selectedTab) {
- case InspectorMode.Properties: return this.propertiesTab;
+ case InspectorMode.Hierarchy: return this.propertiesTab;
case InspectorMode.Style: return html``;
}
}
protected override render = () => html`
-
-
-
{
+ {
this.selectedTab = target.value;
- } }
- .tabs=${this.tabs}
- .value=${this.selectedTab}
- >
-
- ${ this.tabContent() }
-
+ }
+ }
+ .tabs=${this.tabs}
+ .value=${this.selectedTab}
+ >
+
`
}
diff --git a/studio-frontend/src/app/tabs.element.scss b/studio-frontend/src/app/tabs.element.scss
index 2093c3c..1f66831 100644
--- a/studio-frontend/src/app/tabs.element.scss
+++ b/studio-frontend/src/app/tabs.element.scss
@@ -1,20 +1,35 @@
+:host {
+ font-family: "Fira Sans", sans-serif;
+ font-size: 15px;
+ // margin-bottom: ;
+}
+
.studio-tabs {
- // background: red;
- display: flex;
+ appearance: none;
+ display: grid;
+ grid-auto-flow: column;
+ grid-auto-columns: 1fr;
list-style: none;
- margin-block-start: 0px;
- margin-block-end: 0px;
+ width: 100%;
padding-inline-start: 0px;
- li {
+ .studio-tabs-tab {
+
+ // width: max-content;
+ display: inline-flex;
+ justify-content: center;
+ // flex: 1;
border: none;
- padding: 1rem 1.4rem;
+ padding: 1rem;
border-bottom: 4px solid transparent;
color: rgba(255, 255, 255, 0.5);
+ cursor: pointer;
font-weight: 500;
white-space: nowrap;
+ border-bottom: 4px solid var(--color-toolbar-background-light);
&.selected-tab {
+ color: #fff;
border-bottom: 4px solid #e66462;
}
}
diff --git a/studio-frontend/src/app/tabs.element.ts b/studio-frontend/src/app/tabs.element.ts
index 5b644f7..c775e8e 100644
--- a/studio-frontend/src/app/tabs.element.ts
+++ b/studio-frontend/src/app/tabs.element.ts
@@ -12,15 +12,18 @@ export class Tabs extends LitElement {
@property() value = "";
protected override render = () => html`
-
+
${ this.tabs.map(({ label, value: itemValue },i) =>
- html`
- {
+ console.log("๐");
this.onChange({ target: { name: this.name, value: itemValue } });
} }
- >${ label }
`
+ >${ label }`
)}
-
+
`
}
\ No newline at end of file