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`
- ${ this.vstStyle } - Positive Prompt - - Generate your movie - + +
`; } 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} + >
+
+ ${ this.tabContent() }
` } 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