From 1777b4566c08b9c9943f9e9feda5456a7dfa7098 Mon Sep 17 00:00:00 2001 From: barnabasmolnar Date: Fri, 28 Jul 2023 15:09:53 +0200 Subject: [PATCH] POC: follow mode indicator styling --- src/components/App.tsx | 57 ++++++++++++----------- src/components/Avatar.scss | 6 +-- src/components/FollowMode/FollowMode.scss | 45 ++++++++++++++++++ src/components/FollowMode/FollowMode.tsx | 24 ++++++++++ src/css/theme.scss | 2 + 5 files changed, 104 insertions(+), 30 deletions(-) create mode 100644 src/components/FollowMode/FollowMode.scss create mode 100644 src/components/FollowMode/FollowMode.tsx diff --git a/src/components/App.tsx b/src/components/App.tsx index 1a7c3caa6..3cc0e61d0 100644 --- a/src/components/App.tsx +++ b/src/components/App.tsx @@ -331,6 +331,7 @@ import { actionWrapTextInContainer } from "../actions/actionBoundText"; import BraveMeasureTextError from "./BraveMeasureTextError"; import { activeEyeDropperAtom } from "./EyeDropper"; import { isSidebarDockedAtom } from "./Sidebar/Sidebar"; +import FollowMode from "./FollowMode/FollowMode"; const AppContext = React.createContext(null!); const AppPropsContext = React.createContext(null!); @@ -549,12 +550,38 @@ class App extends React.Component { const canvasHeight = canvasDOMHeight * canvasScale; if (viewModeEnabled) { return ( + + ) => + this.handleCanvasContextMenu(event) + } + onPointerMove={this.handleCanvasPointerMove} + onPointerUp={this.handleCanvasPointerUp} + onPointerCancel={this.removePointer} + onTouchMove={this.handleTouchMove} + onPointerDown={this.handleCanvasPointerDown} + > + {t("labels.drawingCanvas")} + + + ); + } + return ( + { onContextMenu={(event: React.PointerEvent) => this.handleCanvasContextMenu(event) } + onPointerDown={this.handleCanvasPointerDown} + onDoubleClick={this.handleCanvasDoubleClick} onPointerMove={this.handleCanvasPointerMove} onPointerUp={this.handleCanvasPointerUp} onPointerCancel={this.removePointer} onTouchMove={this.handleTouchMove} - onPointerDown={this.handleCanvasPointerDown} > {t("labels.drawingCanvas")} - ); - } - return ( - ) => - this.handleCanvasContextMenu(event) - } - onPointerDown={this.handleCanvasPointerDown} - onDoubleClick={this.handleCanvasDoubleClick} - onPointerMove={this.handleCanvasPointerMove} - onPointerUp={this.handleCanvasPointerUp} - onPointerCancel={this.removePointer} - onTouchMove={this.handleTouchMove} - > - {t("labels.drawingCanvas")} - + ); } diff --git a/src/components/Avatar.scss b/src/components/Avatar.scss index 0e21383bc..3e5cea2b4 100644 --- a/src/components/Avatar.scss +++ b/src/components/Avatar.scss @@ -32,10 +32,8 @@ border-radius: 100%; } - &--is-followed { - &::before { - border-color: red; - } + &--is-followed::before { + border-color: var(--color-primary-hover); } } } diff --git a/src/components/FollowMode/FollowMode.scss b/src/components/FollowMode/FollowMode.scss new file mode 100644 index 000000000..755961f50 --- /dev/null +++ b/src/components/FollowMode/FollowMode.scss @@ -0,0 +1,45 @@ +.excalidraw { + .follow-mode { + position: absolute; + box-sizing: border-box; + pointer-events: none; + border: 2px solid var(--color-primary-hover); + z-index: 9999; + display: flex; + align-items: flex-end; + justify-content: center; + + &__badge { + background-color: var(--color-primary-hover); + color: var(--color-primary-light); + padding: 0.25rem 0.5rem; + margin-bottom: 0.5rem; + border-radius: 0.5rem; + pointer-events: all; + font-size: 0.75rem; + display: flex; + gap: 0.5rem; + align-items: center; + } + + &__disconnect-btn { + all: unset; + cursor: pointer; + border-radius: 0.25rem; + + &:hover { + background-color: var(--color-primary-darker); + } + + &:active { + background-color: var(--color-primary-darkest); + } + + svg { + display: block; + width: 1rem; + height: 1rem; + } + } + } +} diff --git a/src/components/FollowMode/FollowMode.tsx b/src/components/FollowMode/FollowMode.tsx new file mode 100644 index 000000000..10e78e834 --- /dev/null +++ b/src/components/FollowMode/FollowMode.tsx @@ -0,0 +1,24 @@ +import { CloseIcon } from "../icons"; +import "./FollowMode.scss"; + +interface FollowModeProps { + width: number; + height: number; + children: React.ReactNode; +} + +const FollowMode = ({ children, height, width }: FollowModeProps) => { + return ( +
+
+
+ Following Handsome Swan + +
+
+ {children} +
+ ); +}; + +export default FollowMode; diff --git a/src/css/theme.scss b/src/css/theme.scss index 643f9346d..d6b61eb2c 100644 --- a/src/css/theme.scss +++ b/src/css/theme.scss @@ -81,6 +81,7 @@ --color-primary-darkest: #4a47b1; --color-primary-light: #e3e2fe; --color-primary-light-darker: #d7d5ff; + --color-primary-hover: #5753d0; --color-gray-10: #f5f5f5; --color-gray-20: #ebebeb; @@ -193,6 +194,7 @@ --color-primary-darkest: #beb9ff; --color-primary-light: #4f4d6f; --color-primary-light-darker: #43415e; + --color-primary-hover: #bbb8ff; --color-text-warning: var(--color-gray-80);