big styling updates (#672)

This commit is contained in:
BFlat authored and GitHub committed 2024-10-11 11:28:31 +07:00
1 parent 7b13046f9a
commit 75318b2e8d
49 files changed
+193 -216

No files matched your search

+2 -2
View File
@@ -31,7 +31,7 @@ export const Button = ({
return "bg-brand-secondary hover:bg-brand-secondary-900 text-white focus-visible:outline-brand-secondary";
}
case "action": {
return " bg-action hover:bg-action-500 text-white focus-visible:outline-action";
return "bg-action hover:bg-action-900 text-white focus-visible:outline-action";
}
case "primary":
default: {
@@ -45,7 +45,7 @@ export const Button = ({
);
const className = twMerge(
"text-sm font-medium rounded-lg px-3 py-2 shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 transition-all duration-150 flex gap-2 items-center justify-center",
"text-sm font-medium rounded-lg px-3 py-2 border border-[#3F3F3F] shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 transition-all duration-150 flex gap-2 items-center justify-center",
getVariantClassNames(propsVariant),
propsClassName,
disabledClass,
@@ -116,7 +116,7 @@ export const ButtonDropdown = ({
disabled={option.disabled}
className={twMerge(
"duration-50 bg-brand-secondary font-medium text-white transition-all",
active ? "bg-ui-controls-button/60" : "",
active ? "bg-brand-secondary-800" : "",
option.disabled
? "pointer-events-none opacity-40"
: "",
@@ -35,7 +35,7 @@ export function ButtonIconSelect({
<button
key={value}
className={twMerge(
`flex h-8 items-center justify-center rounded-lg border-2 text-sm transition-all duration-150`,
`flex h-8 items-center justify-center rounded-lg border text-sm transition-all duration-150`,
text ? "h-auto w-auto gap-2 px-2.5 py-1" : "w-8",
selectedOption === value
? "border-brand-primary bg-ui-panel/[0.3]"
@@ -12,7 +12,7 @@ export const DragAndDropZone = ({
}) => {
if (!file) {
return (
<div className="flex cursor-pointer items-center gap-3.5 rounded-lg border-2 border-dashed border-ui-controls-button/50 bg-brand-secondary p-3">
<div className="flex cursor-pointer items-center gap-3.5 rounded-lg border border-dashed border-[#3F3F3F] bg-brand-secondary p-3">
<FontAwesomeIcon icon={faFileArrowUp} className="text-4xl" />
<div className="flex flex-col gap-0">
<P className="font-medium">
@@ -34,7 +34,7 @@ export const DragAndDropZone = ({
: `${Math.floor(file.size / 1024)} KB`;
return (
<div className="flex cursor-pointer items-center justify-between gap-3.5 rounded-lg border-2 border-dashed border-ui-controls-button/50 bg-brand-secondary p-3">
<div className="flex cursor-pointer items-center justify-between gap-3.5 rounded-lg border border-dashed border-[#3F3F3F] bg-brand-secondary p-3">
<FontAwesomeIcon icon={faFileAudio} className="text-4xl" />
<div className="flex grow flex-col gap-0">
<P className="font-medium">
@@ -70,7 +70,7 @@ function Gravatar(props: Props) {
return (
<div
className={twMerge(
"relative aspect-square overflow-hidden rounded-full border-2 border-white",
"relative aspect-square overflow-hidden rounded-full border border-white",
props.className,
)}
>
+2 -2
View File
@@ -51,8 +51,8 @@ export const Input = React.forwardRef(
ref={ref}
id={id ? id : label ? kebabCase(label) : undefined}
className={twMerge(
"h-10 w-full rounded-lg bg-brand-secondary px-3 py-2.5 text-white outline-none",
"outline-offset-0 transition-all duration-150 ease-in-out focus:outline-brand-primary",
"h-10 w-full rounded-lg bg-brand-secondary px-3 py-2.5 text-white placeholder-white/50 outline-none",
"border border-[#3F3F3F] transition-all duration-150 ease-in-out hover:border-brand-primary/60 focus:border-brand-primary focus:!outline-none",
icon && "pl-10",
isError && "outline-red focus:outline-red",
inputClassName,
+1 -1
View File
@@ -49,7 +49,7 @@ export const LoadingBar = ({
propsInnerWrapperClassName,
);
const progressBackgroundClassName = twMerge(
"w-full bg-gray-500 rounded-full h-2.5",
"w-full bg-brand-secondary-800 rounded-full h-2.5",
propsProgressBackgroundClassName,
);
const progressClassName = twMerge(
@@ -58,7 +58,7 @@ export const SearchFilter = ({
ref={inputRef}
icon={faSearch}
iconClassName="opacity-50 pt-[11px] text-sm"
inputClassName="h-9 rounded-lg text-sm bg-ui-controls-button/30 pr-8 pl-9"
inputClassName="h-9 rounded-lg text-sm pr-8 pl-9"
placeholder={placeholder}
className="grow"
value={inputValue}
+1 -1
View File
@@ -88,7 +88,7 @@ export const Slider: React.FC<SliderProps> = ({
<div
ref={sliderRef}
className={twMerge(
"relative h-2.5 w-full cursor-pointer rounded-full bg-gray-500",
"relative h-2.5 w-full cursor-pointer rounded-full bg-brand-secondary-900",
className,
)}
onMouseDown={handleMouseDown}
@@ -34,21 +34,17 @@ export const Textarea = ({
<textarea
id={id ? id : label ? kebabCase(label) : undefined}
className={twMerge(
"rounded-lg border border-ui-panel-border bg-ui-controls px-3 py-2",
"rounded-lg border border-[#3F3F3F] bg-brand-secondary px-3 py-2 placeholder-white/50 outline-none transition-all duration-150 ease-in-out hover:border-brand-primary/60 focus:border-brand-primary focus:outline-none",
className,
)}
style={{
outline: "2px solid transparent",
transition: "outline-color 0.15s ease-in-out",
resize: resize,
}}
onFocus={(e) => {
onFocus={() => {
disableHotkeyInput(DomLevels.INPUT);
e.currentTarget.style.outlineColor = "#e66462";
}}
onBlur={(e) => {
onBlur={() => {
enableHotkeyInput(DomLevels.INPUT);
e.currentTarget.style.outlineColor = "transparent";
}}
onKeyDown={(event) => event.stopPropagation()}
{...rest}
@@ -20,7 +20,7 @@ export const DragAndDropZone = ({ file, fileTypes }: Props) => {
if (!file) {
return (
<div className="flex cursor-pointer items-center gap-3.5 rounded-lg border-2 border-dashed border-ui-controls-button/50 bg-brand-secondary p-3">
<div className="flex cursor-pointer items-center gap-3.5 rounded-lg border border-dashed border-[#3F3F3F] bg-brand-secondary p-3">
<FontAwesomeIcon icon={faFileArrowUp} className="text-4xl" />
<div className="flex flex-col gap-0">
<P className="font-medium">
@@ -34,7 +34,7 @@ export const DragAndDropZone = ({ file, fileTypes }: Props) => {
);
} else {
return (
<div className="flex cursor-pointer items-center justify-between gap-3.5 rounded-lg border-2 border-dashed border-ui-controls-button/50 bg-brand-secondary p-3">
<div className="flex cursor-pointer items-center justify-between gap-3.5 rounded-lg border border-dashed border-[#3F3F3F] bg-brand-secondary p-3">
<FontAwesomeIcon icon={faFileAudio} className="text-4xl" />
<div className="flex grow flex-col gap-0">
<P className="font-medium">
+8 -11
View File
@@ -1,35 +1,32 @@
export * from "./Badge";
export * from "./Button";
export * from "./ButtonDialogue"; //dependency on TransitionDialogue
export * from "./ButtonDialogue";
export * from "./ButtonDropdown";
export * from "./ButtonIcon";
export * from "./ButtonIconSelect";
export * from "./ButtonLink";
export * from "./ConfirmationModal";
export * from "./FileUploader";
export * from "./FilterButtons"; //this relies on a list of filters locally, could be more flexible
export * from "./FilterButtons";
export * from "./Gravatar";
export * from "./Input"; //need to decouple hotkey signal
export * from "./InputVector"; //need to decouple hotkey signal
export * from "./Input";
export * from "./InputVector";
export * from "./ListDropdown";
export * from "./LoadingBar";
export * from "./LoadingDots";
export * from "./LoadingSpinner";
export * from "./NumberInput";
export * from "./Pagination";
export * from "./Pill";
export * from "./SearchFilter";
export * from "./Select"; //Select's onChange type should be generic
export * from "./Select";
export * from "./Slider";
export * from "./Tabs";
export * from "./Textarea";
export * from "./Tooltip";
export * from "./TransitionDialogue"; //need to decouple hotkey signal
export * from "./TransitionDialogue";
export * from "./Typography";
export * from "./UploadModal";
export * from "./UploadModal3D";
export * from "./UploadModalMedia";
export * from "./WaveformPlayer";
//TODO: need to rewrite because it's against tailwind
export * from "./LoadingDots";
//TODO: need to rewrite because it's not using fontawesome
export * from "./LoadingSpinner";
+1 -1
View File
@@ -70,7 +70,7 @@ export const Toaster = () => {
<div
key={toast.id}
ref={(el) => (toastRefs.current[index] = el)}
className="absolute z-50 w-[360px] animate-fadeIn rounded-lg border-2 border-[#5E5E7C] bg-ui-controls p-3 shadow-xl"
className="absolute z-50 w-[360px] animate-fadeIn rounded-lg border border-[#5E5E7C] bg-ui-controls p-3 shadow-xl"
style={{
top: heights
.slice(0, index)
+1 -1
View File
@@ -22,7 +22,7 @@ export const TopBar = ({ pageName }: Props) => {
);
return (
<header className="fixed left-0 top-0 z-30 w-full border-b border-ui-panel-border bg-ui-panel">
<header className="fixed left-0 top-0 z-30 w-full border-b border-ui-panel-border bg-ui-background">
<nav
className="mx-auto grid h-[64px] w-screen grid-cols-3 items-center justify-between p-3"
aria-label="Global"
@@ -169,7 +169,7 @@ const DragAndDropZone = ({ file }: { file: File | undefined }) => {
if (!file) {
return (
<div className="flex cursor-pointer items-center gap-3.5 rounded-lg border-2 border-dashed border-ui-controls-button/50 bg-brand-secondary p-3">
<div className="flex cursor-pointer items-center gap-3.5 rounded-lg border border-dashed border-[#3F3F3F] bg-brand-secondary p-3">
<FontAwesomeIcon icon={faFileArrowUp} className="text-4xl" />
<div className="flex flex-col gap-0">
<P className="font-medium">
@@ -183,7 +183,7 @@ const DragAndDropZone = ({ file }: { file: File | undefined }) => {
);
} else {
return (
<div className="flex cursor-pointer items-center gap-3.5 rounded-lg border-2 border-dashed border-ui-controls-button/50 bg-brand-secondary p-3">
<div className="flex cursor-pointer items-center gap-3.5 rounded-lg border border-dashed border-[#3F3F3F] bg-brand-secondary p-3">
<FontAwesomeIcon icon={faFileAudio} className="text-4xl" />
<div className="flex flex-col gap-0">
<P className="font-medium">
+2 -2
View File
@@ -21,7 +21,7 @@ export const MainPage = () => {
{option.label === "Remix" && (
<button
className={twMerge(
"group relative flex h-[249px] w-full flex-col items-center rounded-lg border-2 border-white/5 bg-brand-secondary/50 px-2 pt-[58px] transition-all duration-150 hover:border-brand-primary hover:bg-brand-secondary",
"group relative flex h-[249px] w-full flex-col items-center rounded-lg border border-white/5 bg-brand-secondary/50 px-2 pt-[58px] transition-all duration-150 hover:border-brand-primary hover:bg-brand-primary/20",
)}
onClick={() => (showWizard.value = option.value as string)}
>
@@ -56,7 +56,7 @@ export const MainPage = () => {
{option.label === "Blank Scene" && (
<button
className={twMerge(
"group relative flex h-[249px] w-full flex-col items-center rounded-lg border-2 border-white/5 bg-brand-secondary/50 px-2 pt-[58px] transition-all duration-150 hover:border-brand-primary hover:bg-brand-secondary",
"group relative flex h-[249px] w-full flex-col items-center rounded-lg border border-white/5 bg-brand-secondary/50 px-2 pt-[58px] transition-all duration-150 hover:border-brand-primary hover:bg-brand-primary/20",
)}
onClick={() => (showWizard.value = option.value as string)}
>
@@ -20,7 +20,7 @@ export function ObjectSelectionButton({
return (
<div className="flex flex-col">
<button
className="flex w-full cursor-pointer items-center justify-between gap-3 rounded-lg border-2 border-white/30 bg-ui-controls-button/70 p-2 pr-3 text-start transition-all hover:border-brand-primary hover:bg-ui-controls-button/60"
className="flex w-full cursor-pointer items-center justify-between gap-3 rounded-lg border border-white/30 bg-ui-controls-button/70 p-2 pr-3 text-start transition-all hover:border-brand-primary hover:bg-ui-controls-button/60"
onClick={onClick}
disabled={disabled}
>
+1 -1
View File
@@ -60,7 +60,7 @@ export const RemixVideo = ({
<button
key={card.token}
className={twMerge(
"relative block aspect-video w-[352px] overflow-hidden rounded-lg border-2 transition-all duration-150",
"relative block aspect-video w-[352px] overflow-hidden rounded-lg border transition-all duration-150",
card.token === selectedRemixCard.value?.token
? "border-brand-primary"
: "border-white/5 hover:border-white/25",
@@ -54,7 +54,7 @@ export const Controls3D = () => {
return (
<div>
<div className="flex justify-center">
<div className="rounded-b-lg bg-ui-controls p-1.5 text-white shadow-md">
<div className="rounded-b-lg border border-[#3F3F3F] bg-ui-controls p-1.5 text-white shadow-md">
<div className="flex items-center justify-center gap-3">
<ButtonIconSelect
options={modes}
@@ -4,6 +4,7 @@ import { useSignals, useSignalEffect } from "@preact/signals-react/runtime";
import {
faCheckSquare,
faFile,
faQuestion,
faSquare,
} from "@fortawesome/pro-solid-svg-icons";
@@ -291,9 +292,7 @@ export const ControlsTopButtons = () => {
className="shadow-xl"
iconClassName={twMerge(
"text-[16px]",
outlinerIsShowing.value
? "text-white"
: "text-ui-controls-button/90",
outlinerIsShowing.value ? "text-white" : "text-white/20",
)}
variant="secondary"
onClick={handleShowOutliner}
@@ -306,6 +305,7 @@ export const ControlsTopButtons = () => {
variant: "secondary",
label: "Help",
className: "shadow-xl",
icon: faQuestion,
}}
dialogProps={{
className: "max-w-6xl w-auto",
@@ -39,7 +39,7 @@ export const SceneCard: React.FC<SceneCardProps> = ({
<button
key={scene.token}
className={twMerge(
"relative aspect-video w-full cursor-pointer overflow-hidden rounded-lg border-2 transition-colors ease-in-out ",
"relative aspect-video w-full cursor-pointer overflow-hidden rounded-lg border transition-colors ease-in-out",
selectedSceneId === scene.token
? "border-brand-primary"
: "border-ui-controls-button/25 hover:border-ui-controls-button",
@@ -140,8 +140,8 @@ export const ControlsVideo = () => {
className={twMerge(
"h-7 w-7 p-0 text-sm",
isRepeating
? "border-2 border-brand-primary"
: "border-2 border-transparent",
? "border border-brand-primary"
: "border border-transparent",
)}
/>
</Tooltip>
@@ -47,7 +47,7 @@ export const DragComponent = () => {
className={[
"absolute p-2",
"rounded opacity-60",
"border-2-dnd-timeGridBorder border bg-dnd-timeGrid",
"border border-dnd-timeGridBorder bg-dnd-timeGrid",
].join(" ")}
style={{
bottom: timelineHeight.value - 60,
@@ -42,7 +42,7 @@ export function CompletedCard({ movie, setMovieId }: Props) {
}}
>
<div className="flex gap-4">
<div className="flex h-32 w-32 justify-center overflow-hidden rounded-lg bg-ui-background">
<div className="flex h-32 w-32 justify-center overflow-hidden rounded-lg bg-black/60">
<img
src={
loadError ? "/resources/images/movie-placeholder.png" : imageUrl
@@ -207,7 +207,7 @@ export const Outliner = () => {
<div className="relative mx-4 my-2.5">
<Input
inputClassName="h-8 rounded-lg text-sm bg-ui-controls-button/30 pr-8"
inputClassName="h-8 rounded-lg text-sm pr-8"
placeholder="Search..."
value={searchTerm}
onInput={handleSearchChange}
@@ -87,7 +87,7 @@ export const PreviewEngineCamera = () => {
>
<div
className={twMerge(
"origin -z-10 flex h-auto w-full flex-wrap items-center gap-1.5 rounded-t-lg bg-ui-controls p-2 text-white",
"origin -z-10 flex h-auto w-full flex-wrap items-center gap-1.5 rounded-t-lg bg-ui-panel p-2 text-white",
cameraAspectRatio.value !== CameraAspectRatio.VERTICAL_9_16
? "justify-between"
: "flex-col justify-center",
@@ -118,7 +118,7 @@ export const PreviewEngineCamera = () => {
)}
<Button
variant="action"
variant="secondary"
onClick={handleButtonCameraView}
className="rounded-md px-2 py-1 text-sm"
>
+2 -2
View File
@@ -16,7 +16,7 @@ export const PreviewImages = () => {
return (
<div className="flex justify-center gap-1">
<div
className="block w-full overflow-hidden rounded-lg border-2 border-ui-controls/25 bg-ui-panel"
className="block w-full overflow-hidden rounded-lg border border-ui-controls/25 bg-ui-panel"
style={{ height: imageHeight, width: imageWidth }}
>
<canvas id="raw-preview" width={imageWidth} height={imageHeight} />
@@ -28,7 +28,7 @@ export const PreviewImages = () => {
/>
</div>
<div
className="block w-full overflow-hidden rounded-lg border-2 border-ui-controls/25 bg-ui-panel"
className="block w-full overflow-hidden rounded-lg border border-ui-controls/25 bg-ui-panel"
style={{ height: imageHeight, width: imageWidth }}
>
<img
@@ -30,15 +30,12 @@ export const SidePanel = () => {
<>
<div
className={[
"fixed",
"z-[25] border-l border-l-ui-panel-border bg-ui-panel",
"flex",
"transition-all duration-300 ease-in-out",
"fixed z-20 flex border-l border-[#3F3F3F] bg-ui-panel transition-all duration-100",
].join(" ")}
style={{
top: 64,
right: 84,
width: sidePanelVisible.value ? displayWidth : 0,
right: sidePanelVisible.value ? 84 : -320,
width: displayWidth,
}}
>
<div className="relative block h-full w-full bg-ui-panel">
@@ -36,8 +36,8 @@ export const SidePanelMenu = ({
<div
className={twMerge(
"fixed z-[25] bg-assets-background",
"right-0 top-[64px] w-[84px] px-2 py-2",
"overflow-y-auto",
"right-0 top-[64px] w-[84px] overflow-auto border-l px-2 py-2",
sidePanelVisible.value ? "border-transparent" : "border-[#3F3F3F]",
)}
style={{
height: pageHeight.value - 64,
@@ -61,9 +61,9 @@ export const SidePanelMenu = ({
<button
key={tab.title}
className={twMerge([
"flex flex-col items-center rounded-lg border-2 border-transparent px-2 py-3 transition-all duration-200 hover:bg-assets-selectedTab/70",
tab.title === selectedTab.title
? "bg-assets-selectedTab opacity-100 hover:bg-assets-selectedTab"
"flex flex-col items-center rounded-lg border border-transparent px-2 py-3 transition-all duration-200 hover:bg-brand-secondary",
tab.title === selectedTab.title && sidePanelVisible.value
? "border-[#3F3F3F] bg-brand-secondary-900/60 opacity-100 hover:bg-brand-secondary-900/60"
: "opacity-60",
tab.title === TabTitles.RENDER &&
"bg-brand-primary font-medium opacity-90 hover:border-white/25 hover:bg-brand-primary hover:opacity-100",
@@ -25,7 +25,7 @@ const mapCharacterObejctType = (mediaType: string) => {
}
}
};
const patchExpressionObejctType = (mediaType: string) => {
const patchExpressionObjectType = (mediaType: string) => {
const typeCased = mediaType.toLowerCase();
if (typeCased === "vmd") {
return "Mixamo";
@@ -49,7 +49,7 @@ export const ItemElement = ({ item }: Props) => {
item.type === AssetType.CHARACTER
? mapCharacterObejctType(item.media_type)
: item.type === AssetType.EXPRESSION
? patchExpressionObejctType(item.media_type)
? patchExpressionObjectType(item.media_type)
: item.media_type.toUpperCase()
}
className="absolute right-0 mr-[3px] mt-[3px]"
@@ -65,7 +65,7 @@ export const ItemElement = ({ item }: Props) => {
alt={item.name}
className="pointer-events-none aspect-[4.5/5] w-full select-none bg-gradient-to-b from-[#CCCCCC] to-[#A0A0A0] object-cover object-center"
/>
<div className="pointer-events-none w-full select-none truncate bg-ui-controls px-2 py-1 text-center text-[12px] transition-all duration-200 group-hover:bg-ui-controls-button/50">
<div className="pointer-events-none w-full select-none truncate bg-brand-secondary-950 px-2 py-1 text-center text-[12px] transition-all duration-200 group-hover:bg-brand-secondary-800">
{item.name || item.media_id}
</div>
</div>
@@ -35,7 +35,7 @@ export const AudioItemElement = ({ item }: Props) => {
DndAsset.onPointerDown(event, item);
}}
>
<div className="flex w-full flex-col gap-0.5 rounded-lg bg-assets-background p-2.5">
<div className="flex w-full flex-col gap-0.5 rounded-lg bg-brand-secondary p-2.5">
<div className="flex justify-between">
<AudioTypePill category={item.category} />
{/* <p>{item.length}</p> */}
@@ -65,7 +65,7 @@ export const PageTTS = ({
className="flex cursor-pointer items-center justify-between gap-3 rounded-lg bg-brand-secondary p-3 text-start transition-all hover:bg-ui-controls-button/40"
onClick={() => changePage(AudioTabPages.SELECT_TTS_MODEL)}
>
<span className="h-12 w-12 rounded-lg bg-ui-controls-button/100" />
<span className="h-12 w-12 rounded-lg bg-white/10" />
<div className="grow">
{!ttsState.voice && <H4>None Selected</H4>}
{ttsState.voice && (
@@ -55,7 +55,7 @@ export const PageVoicetoVoice = ({
className="flex cursor-pointer items-center justify-between gap-3 rounded-lg bg-brand-secondary p-3 text-start transition-all hover:bg-ui-controls-button/40"
onClick={() => changePage(AudioTabPages.SELECT_V2V_MODEL)}
>
<span className="h-12 w-12 rounded-lg bg-ui-controls-button/100" />
<span className="h-12 w-12 rounded-lg bg-white/10" />
<div className="grow">
{!v2vState.voice && <H4>None Selected</H4>}
{v2vState.voice && (
@@ -12,10 +12,10 @@ export const VoiceModelElement = ({
return (
<button
className="flex cursor-pointer items-center justify-between gap-3 rounded-lg border-2 border-transparent bg-brand-secondary p-3 text-start transition-all hover:border-ui-controls-button hover:bg-ui-controls-button/40"
className="flex cursor-pointer items-center justify-between gap-3 rounded-lg border border-transparent bg-brand-secondary p-3 text-start transition-all hover:border-ui-controls-button hover:bg-ui-controls-button/40"
onClick={() => onSelect(model)}
>
<span className="h-12 w-12 rounded-lg bg-ui-controls-button/100" />
<span className="h-12 w-12 rounded-lg bg-white/10" />
<div className="grow">
<H4>{model.title}</H4>
{creatorName && <H6 className="text-white/70">{creatorName}</H6>}
@@ -73,7 +73,7 @@ export function GenerateMovieButton({
return (
<div
ref={ref}
className="absolute bottom-0 border-t border-white/15 bg-ui-controls/60 p-4 shadow-lg"
className="absolute bottom-0 border-t border-[#3F3F3F] bg-ui-controls/60 p-4 shadow-lg"
>
<Label>
<div className="mb-2 leading-tight">
@@ -87,7 +87,7 @@ export function GenerateMovieButton({
<Button
icon={faFilm}
variant="primary"
className="w-full"
className="h-11 w-full"
onClick={generateMovie}
>
Generate Movie
@@ -193,7 +193,7 @@ export const IPAdapter: React.FC = () => {
const DragAndDropZone = () => {
return (
<div className="flex cursor-pointer items-center gap-3.5 rounded-lg border-2 border-dashed border-ui-controls-button/50 bg-brand-secondary p-3 transition-all duration-150 hover:bg-ui-controls-button/40">
<div className="flex cursor-pointer items-center gap-3.5 rounded-lg border border-dashed border-[#3F3F3F] bg-brand-secondary p-3 transition-all duration-150 hover:bg-ui-controls-button/40">
<FontAwesomeIcon icon={faFileImage} className="text-3xl" />
<div className="flex flex-col gap-0 text-sm">
<P className="font-medium">
@@ -232,7 +232,7 @@ export const IPAdapter: React.FC = () => {
name="file"
types={FILE_TYPES}
>
<div className="relative h-[88px] cursor-pointer overflow-hidden rounded-lg border-2 border-white/10 bg-black/25">
<div className="relative h-[88px] cursor-pointer overflow-hidden rounded-lg border border-white/10 bg-black/25">
<img
src={adapterImage.value}
alt="IPAdapter"
@@ -40,10 +40,10 @@ export const ItemPicker = ({
return (
<button
className={twMerge(
"relative cursor-pointer overflow-hidden rounded-lg border-2 transition-colors ease-in-out",
"relative cursor-pointer overflow-hidden rounded-lg border transition-colors ease-in-out",
selected
? "border-brand-primary"
: "border-[#4B4B5C] hover:border-ui-controls-button",
: "border-[#3F3F3F] hover:border-brand-primary",
className,
)}
style={{
@@ -73,7 +73,7 @@ export const Prompts = () => {
<div className="relative w-full">
<Textarea
label="Enter a Prompt"
className="w-full"
className="w-full text-sm"
rows={3}
name="positive-prompt"
placeholder="Type here to describe your scene"
@@ -106,7 +106,7 @@ export const Prompts = () => {
<div className="relative w-full">
<Textarea
label="Negative Prompt"
className="w-full"
className="w-full text-sm"
rows={2}
name="negative-prompt"
placeholder="Type here to filter out the things you don't want in the scene"
@@ -141,7 +141,7 @@ export const Prompts = () => {
<div className="relative w-full">
<Textarea
label="Negative Prompt"
className="w-full"
className="w-full text-sm"
rows={2}
name="negative-prompt"
placeholder="Type here to filter out the things you don't want in the scene"
@@ -9,22 +9,10 @@ import { useSignals } from "@preact/signals-react/runtime";
import Queue from "~/pages/PageEnigma/Queue/Queue";
import { QueueNames } from "~/pages/PageEnigma/Queue/QueueNames";
import { toEngineActions } from "~/pages/PageEnigma/Queue/toEngineActions";
import {
faceDetail,
upscale,
lipSync,
cinematic,
enginePreProcessing,
} from "~/pages/PageEnigma/signals/stylizeTab";
import { useContext } from "react";
import { EngineContext } from "~/pages/PageEnigma/contexts/EngineContext";
import { StyleStrength } from "~/pages/PageEnigma/comps/SidePanelTabs/tabComps/StylizeTab/StyleStrength";
import { StyleOptions } from "~/pages/PageEnigma/comps/SidePanelTabs/tabComps/StylizeTab/StyleOptions";
export function StyleButtons() {
useSignals();
const editorEngine = useContext(EngineContext);
const switchPreview = async () => {
if (editorState.value === EditorStates.EDIT) {
@@ -59,7 +47,7 @@ export function StyleButtons() {
return (
<div className="flex w-full flex-col justify-center gap-4 rounded-b-lg bg-ui-panel">
<div className="w-full">
<div className="flex w-full flex-col gap-3">
<div className="w-full">
<Label>Render the camera view with AI</Label>
<div className="mb-2 text-xs text-white/70">
@@ -69,7 +57,7 @@ export function StyleButtons() {
<>
<Button
icon={faArrowsRotate}
variant="primary"
variant="action"
className="mt-1.5 w-full"
onClick={switchPreview}
>
@@ -66,7 +66,7 @@ export function StyleOptions() {
className={twMerge(
lipSync.value
? "bg-brand-primary hover:bg-brand-primary-400"
: "bg-gray-500 hover:bg-gray-400",
: "bg-brand-secondary-800 hover:bg-brand-secondary-600",
"focus:ring-indigo-500 relative inline-flex h-6 w-11 items-center rounded-full transition-colors focus:outline-none focus:ring-0 focus:ring-offset-0",
)}
>
@@ -98,7 +98,7 @@ export function StyleOptions() {
className={twMerge(
faceDetail.value
? "bg-brand-primary hover:bg-brand-primary-400"
: "bg-gray-500 hover:bg-gray-400",
: "bg-brand-secondary-800 hover:bg-brand-secondary-600",
"focus:ring-indigo-500 relative inline-flex h-6 w-11 items-center rounded-full transition-colors focus:outline-none focus:ring-0 focus:ring-offset-0",
)}
>
@@ -128,7 +128,7 @@ export function StyleOptions() {
className={twMerge(
upscale.value
? "bg-brand-primary hover:bg-brand-primary-400"
: "bg-gray-500 hover:bg-gray-400",
: "bg-brand-secondary-800 hover:bg-brand-secondary-600",
"relative inline-flex h-6 w-11 items-center rounded-full transition-colors focus:outline-none focus:ring-0 focus:ring-offset-0",
)}
>
@@ -157,7 +157,7 @@ export function StyleOptions() {
className={twMerge(
cinematic.value
? "bg-brand-primary hover:bg-brand-primary-400"
: "bg-gray-500 hover:bg-gray-400",
: "bg-brand-secondary-800 hover:bg-brand-secondary-600",
"focus:ring-indigo-500 relative inline-flex h-6 w-11 items-center rounded-full transition-all focus:outline-none focus:ring-0 focus:ring-offset-0",
)}
>
@@ -185,7 +185,7 @@ export function StyleOptions() {
className={twMerge(
enginePreProcessing.value
? "bg-brand-primary hover:bg-brand-primary-400"
: "bg-gray-500 hover:bg-gray-400",
: "bg-brand-secondary-800 hover:bg-brand-secondary-600",
"focus:ring-indigo-500 relative inline-flex h-6 w-11 items-center rounded-full transition-colors focus:outline-none focus:ring-0 focus:ring-offset-0",
)}
>
@@ -30,7 +30,7 @@ export function StyleSelectionButton({
<div className="flex flex-col">
<Label>Select a Style</Label>
<button
className="flex w-full cursor-pointer items-center justify-between gap-3 rounded-lg border-2 border-white/30 bg-ui-controls-button/70 p-2 pr-3 text-start transition-all hover:border-brand-primary hover:bg-ui-controls-button/60"
className="flex w-full cursor-pointer items-center justify-between gap-3 rounded-lg border border-[#3F3F3F] bg-brand-secondary p-2 pr-3 text-start transition-all hover:border-brand-primary hover:bg-brand-primary/20"
onClick={onClick}
>
<div className="aspect-video w-20 overflow-hidden rounded-md bg-ui-controls-button/100">
@@ -23,10 +23,10 @@ export const ItemPicker = ({
return (
<button
className={twMerge(
"relative aspect-video cursor-pointer overflow-hidden rounded-lg border-2 transition-colors ease-in-out",
"relative aspect-video cursor-pointer overflow-hidden rounded-lg border transition-colors ease-in-out",
selected
? "border-brand-primary"
: "border-ui-controls-button/25 hover:border-ui-controls-button",
: "border-[#3F3F3F] hover:border-brand-primary",
)}
onClick={handleSelected}
>
@@ -20,7 +20,7 @@ export default function PremiumLockTimeline({
className="absolute top-1/2 ml-[720px] -translate-y-1/2 transform border-l border-[#43435C] bg-ui-panel/70 backdrop-blur-sm"
>
<div className="flex h-full w-full flex-col justify-center pl-12">
<div className="flex w-[400px] flex-col gap-1 rounded-lg border-2 border-white/40 bg-ui-controls p-4 text-center shadow-lg">
<div className="flex w-[400px] flex-col gap-1 rounded-lg border border-white/40 bg-ui-controls p-4 text-center shadow-lg">
<h6 className="text-md font-medium">
Your timeline is currently limited to 3 seconds.
</h6>
@@ -47,7 +47,7 @@ export const TrackClip = ({ clip, min, max, group, updateClip }: Props) => {
<button
className={[
...classes,
"w-[15px] rounded-l-md border-2 border-transparent",
"w-[15px] rounded-l-md border border-transparent",
"block h-full cursor-ew-resize",
clip.clip_uuid === selectedClipId
? "border border-b-2 border-l-2 border-r-0 border-t-2"
@@ -109,7 +109,7 @@ export const TrackClip = ({ clip, min, max, group, updateClip }: Props) => {
<button
className={[
...classes,
"w-[15px] rounded-r-md border-2 border-transparent",
"w-[15px] rounded-r-md border border-transparent",
"block h-full cursor-ew-resize",
clip.clip_uuid === selectedClipId
? "border border-b-2 border-l-0 border-r-2 border-t-2"
@@ -66,7 +66,7 @@ export const TrackClipPrompt = ({
<button
className={[
...classes,
"z-40 w-[15px] rounded-l-md border-2 border-transparent",
"z-40 w-[15px] rounded-l-md border border-transparent",
"block h-full cursor-ew-resize",
clip.clip_uuid === selectedClipId
? "border border-b-2 border-l-2 border-r-0 border-t-2"
@@ -154,7 +154,7 @@ export const TrackClipPrompt = ({
<button
className={[
...classes,
"z-50 w-[15px] rounded-r-md border-2 border-transparent",
"z-50 w-[15px] rounded-r-md border border-transparent",
"block h-full cursor-ew-resize",
clip.clip_uuid === selectedClipId
? "border border-b-2 border-l-0 border-r-2 border-t-2"
@@ -1,6 +1,5 @@
import { signal } from "@preact/signals-core";
import { SceneObject } from "./types";
import { faCamera, faCube, faPerson } from "@fortawesome/pro-solid-svg-icons";
import { SceneManager } from "../../Editor/scene_manager_api";
export const outlinerState = {
+72 -72
View File
@@ -1,6 +1,6 @@
* {
scrollbar-width: thin;
scrollbar-color: #676781 #39394d79;
scrollbar-color: #3f3f3f #39394d79;
}
/* Works on Chrome, Edge, and Safari */
@@ -9,7 +9,7 @@
}
*::-webkit-scrollbar-track {
background: #39394d;
background: #2e2e2e;
}
*::-webkit-scrollbar-thumb {
@@ -91,57 +91,57 @@ img {
width: 10px;
height: 10px;
border-radius: 5px;
background-color: #393948;
color: #393948;
background-color: #ffffff30;
color: #ffffff30;
box-shadow:
9984px 0 0 0 #393948,
9999px 0 0 0 #393948,
10014px 0 0 0 #393948;
9984px 0 0 0 #ffffff30,
9999px 0 0 0 #ffffff30,
10014px 0 0 0 #ffffff30;
animation: dot-typing 1.5s infinite linear;
}
@keyframes dot-typing {
0% {
box-shadow:
9984px 0 0 0 #393948,
9999px 0 0 0 #393948,
10014px 0 0 0 #393948;
9984px 0 0 0 #ffffff30,
9999px 0 0 0 #ffffff30,
10014px 0 0 0 #ffffff30;
}
16.667% {
box-shadow:
9984px -10px 0 0 #393948,
9999px 0 0 0 #393948,
10014px 0 0 0 #393948;
9984px -10px 0 0 #ffffff30,
9999px 0 0 0 #ffffff30,
10014px 0 0 0 #ffffff30;
}
33.333% {
box-shadow:
9984px 0 0 0 #393948,
9999px 0 0 0 #393948,
10014px 0 0 0 #393948;
9984px 0 0 0 #ffffff30,
9999px 0 0 0 #ffffff30,
10014px 0 0 0 #ffffff30;
}
50% {
box-shadow:
9984px 0 0 0 #393948,
9999px -10px 0 0 #393948,
10014px 0 0 0 #393948;
9984px 0 0 0 #ffffff30,
9999px -10px 0 0 #ffffff30,
10014px 0 0 0 #ffffff30;
}
66.667% {
box-shadow:
9984px 0 0 0 #393948,
9999px 0 0 0 #393948,
10014px 0 0 0 #393948;
9984px 0 0 0 #ffffff30,
9999px 0 0 0 #ffffff30,
10014px 0 0 0 #ffffff30;
}
83.333% {
box-shadow:
9984px 0 0 0 #393948,
9999px 0 0 0 #393948,
10014px -10px 0 0 #393948;
9984px 0 0 0 #ffffff30,
9999px 0 0 0 #ffffff30,
10014px -10px 0 0 #ffffff30;
}
100% {
box-shadow:
9984px 0 0 0 #393948,
9999px 0 0 0 #393948,
10014px 0 0 0 #393948;
9984px 0 0 0 #ffffff30,
9999px 0 0 0 #ffffff30,
10014px 0 0 0 #ffffff30;
}
}
@@ -157,93 +157,93 @@ img {
width: 10px;
height: 10px;
border-radius: 5px;
background-color: #393948;
color: #393948;
background-color: #ffffff30;
color: #ffffff30;
box-shadow:
9991px -16px 0 0 #393948,
9991px 0 0 0 #393948,
10007px 0 0 0 #393948;
9991px -16px 0 0 #ffffff30,
9991px 0 0 0 #ffffff30,
10007px 0 0 0 #ffffff30;
animation: dot-bricks 2s infinite ease;
}
@keyframes dot-bricks {
0% {
box-shadow:
9991px -16px 0 0 #393948,
9991px 0 0 0 #393948,
10007px 0 0 0 #393948;
9991px -16px 0 0 #ffffff30,
9991px 0 0 0 #ffffff30,
10007px 0 0 0 #ffffff30;
}
8.333% {
box-shadow:
10007px -16px 0 0 #393948,
9991px 0 0 0 #393948,
10007px 0 0 0 #393948;
10007px -16px 0 0 #ffffff30,
9991px 0 0 0 #ffffff30,
10007px 0 0 0 #ffffff30;
}
16.667% {
box-shadow:
10007px -16px 0 0 #393948,
9991px -16px 0 0 #393948,
10007px 0 0 0 #393948;
10007px -16px 0 0 #ffffff30,
9991px -16px 0 0 #ffffff30,
10007px 0 0 0 #ffffff30;
}
25% {
box-shadow:
10007px -16px 0 0 #393948,
9991px -16px 0 0 #393948,
9991px 0 0 0 #393948;
10007px -16px 0 0 #ffffff30,
9991px -16px 0 0 #ffffff30,
9991px 0 0 0 #ffffff30;
}
33.333% {
box-shadow:
10007px 0 0 0 #393948,
9991px -16px 0 0 #393948,
9991px 0 0 0 #393948;
10007px 0 0 0 #ffffff30,
9991px -16px 0 0 #ffffff30,
9991px 0 0 0 #ffffff30;
}
41.667% {
box-shadow:
10007px 0 0 0 #393948,
10007px -16px 0 0 #393948,
9991px 0 0 0 #393948;
10007px 0 0 0 #ffffff30,
10007px -16px 0 0 #ffffff30,
9991px 0 0 0 #ffffff30;
}
50% {
box-shadow:
10007px 0 0 0 #393948,
10007px -16px 0 0 #393948,
9991px -16px 0 0 #393948;
10007px 0 0 0 #ffffff30,
10007px -16px 0 0 #ffffff30,
9991px -16px 0 0 #ffffff30;
}
58.333% {
box-shadow:
9991px 0 0 0 #393948,
10007px -16px 0 0 #393948,
9991px -16px 0 0 #393948;
9991px 0 0 0 #ffffff30,
10007px -16px 0 0 #ffffff30,
9991px -16px 0 0 #ffffff30;
}
66.666% {
box-shadow:
9991px 0 0 0 #393948,
10007px 0 0 0 #393948,
9991px -16px 0 0 #393948;
9991px 0 0 0 #ffffff30,
10007px 0 0 0 #ffffff30,
9991px -16px 0 0 #ffffff30;
}
75% {
box-shadow:
9991px 0 0 0 #393948,
10007px 0 0 0 #393948,
10007px -16px 0 0 #393948;
9991px 0 0 0 #ffffff30,
10007px 0 0 0 #ffffff30,
10007px -16px 0 0 #ffffff30;
}
83.333% {
box-shadow:
9991px -16px 0 0 #393948,
10007px 0 0 0 #393948,
10007px -16px 0 0 #393948;
9991px -16px 0 0 #ffffff30,
10007px 0 0 0 #ffffff30,
10007px -16px 0 0 #ffffff30;
}
91.667% {
box-shadow:
9991px -16px 0 0 #393948,
9991px 0 0 0 #393948,
10007px -16px 0 0 #393948;
9991px -16px 0 0 #ffffff30,
9991px 0 0 0 #ffffff30,
10007px -16px 0 0 #ffffff30;
}
100% {
box-shadow:
9991px -16px 0 0 #393948,
9991px 0 0 0 #393948,
10007px 0 0 0 #393948;
9991px -16px 0 0 #ffffff30,
9991px 0 0 0 #ffffff30,
10007px 0 0 0 #ffffff30;
}
}
+3 -3
View File
@@ -4,14 +4,14 @@
@layer components {
.filter-tab {
@apply text-nowrap rounded-lg border-2 border-assets-background bg-assets-background px-2.5 py-1 text-[13px] font-medium text-white/80 transition-all duration-150 hover:border-assets-background/0 hover:bg-assets-background/80;
@apply text-nowrap rounded-lg border border-[#3F3F3F] bg-ui-controls-button px-2.5 py-1 text-[13px] font-medium text-white/80 transition-all duration-150 hover:border-brand-primary/50 hover:bg-assets-background/80;
}
.filter-tab.active {
@apply border-2 border-brand-primary text-white hover:border-brand-primary hover:bg-assets-background;
@apply border border-brand-primary text-white hover:border-brand-primary hover:bg-ui-controls-button;
}
.filter-tab:disabled {
@apply border-transparent bg-assets-background/50 hover:border-transparent disabled:text-white/30;
@apply border-transparent bg-ui-controls-button/50 hover:border-transparent disabled:text-white/30;
}
}
+31 -31
View File
@@ -43,18 +43,18 @@ export default {
},
"brand-secondary": {
//gunpowder
DEFAULT: "#39394c", //=950
"50": "#f5f6f9",
"100": "#e8eaf1",
"200": "#d7dbe6",
"300": "#bbc1d5",
"400": "#9aa2c0",
"500": "#8188b0",
"600": "#6f74a1",
"700": "#636492",
"800": "#545579",
"900": "#464762",
"950": "#39394c",
DEFAULT: "#2E2E2E",
"50": "#f6f6f6",
"100": "#e7e7e7",
"200": "#d1d1d1",
"300": "#b0b0b0",
"400": "#888888",
"500": "#6d6d6d",
"600": "#5d5d5d",
"700": "#4f4f4f",
"800": "#454545",
"900": "#3d3d3d",
"950": "#2e2e2e",
},
"brand-tertiary": {
//Aquamarine Blue
@@ -105,18 +105,18 @@ export default {
action: {
//comet
DEFAULT: "#55556b", //600
"50": "#f7f7f8",
"100": "#eeedf1",
"200": "#d8d8df",
"300": "#b5b5c4",
"400": "#8d8da3",
"500": "#6f7088",
"600": "#55556b",
"700": "#49495b",
"800": "#3f3f4d",
"900": "#373743",
"950": "#26252c",
DEFAULT: "#2E2E2E",
"50": "#f6f6f6",
"100": "#e7e7e7",
"200": "#d1d1d1",
"300": "#b0b0b0",
"400": "#888888",
"500": "#6d6d6d",
"600": "#5d5d5d",
"700": "#4f4f4f",
"800": "#454545",
"900": "#3d3d3d",
"950": "#2e2e2e",
},
character: {
@@ -159,8 +159,8 @@ export default {
selected: "#FFDE67",
},
assets: {
background: "#39394D",
selectedTab: "#55556B",
background: "#242424",
selectedTab: "#2E2E2E",
},
dnd: {
canDrop: "#46936E",
@@ -172,11 +172,11 @@ export default {
},
ui: {
background: "#1a1a27",
panel: "#242433",
"panel-border": "#393948",
controls: "#39394D",
"controls-button": "#676781",
background: "#242424",
panel: "#1F1F1F",
"panel-border": "#3F3F3F",
controls: "#2E2E2E",
"controls-button": "#2E2E2E",
divider: "#515168",
},