diff --git a/frontend/src/features/authoring/images.tsx b/frontend/src/features/authoring/images.tsx
index bbd759c4..22872807 100644
--- a/frontend/src/features/authoring/images.tsx
+++ b/frontend/src/features/authoring/images.tsx
@@ -164,7 +164,7 @@ function ImageCreateMenu() {
return (
<>
-
+
diff --git a/frontend/src/features/authoring/topbar/ShapeCreateMenu.tsx b/frontend/src/features/authoring/topbar/ShapeCreateMenu.tsx
index 3c170b8f..38f9097c 100644
--- a/frontend/src/features/authoring/topbar/ShapeCreateMenu.tsx
+++ b/frontend/src/features/authoring/topbar/ShapeCreateMenu.tsx
@@ -19,7 +19,7 @@ function ShapeCreateMenu() {
return (
<>
-
+
@@ -28,22 +28,22 @@ function ShapeCreateMenu() {
tabIndex={0}
className="dropdown-content menu menu-horizontal bg-base-300 rounded-box z-1 p-2 shadow-sm top-[38px] w-max"
>
-
+
switchCreate("box")}>
-
+
switchCreate("ellipse")}>
-
+
switchCreate("line")}>
-
+
switchCreate("speech")}>
diff --git a/frontend/src/features/authoring/topbar/ShapeSection.tsx b/frontend/src/features/authoring/topbar/ShapeSection.tsx
index 31752f24..2b1b5d99 100644
--- a/frontend/src/features/authoring/topbar/ShapeSection.tsx
+++ b/frontend/src/features/authoring/topbar/ShapeSection.tsx
@@ -39,12 +39,14 @@ function ShapeSection() {
modifyProps("fill", value)}
+ tooltip="Fill color"
>
modifyProps("stroke", value)}
+ tooltip="Stroke color"
>
@@ -52,6 +54,7 @@ function ShapeSection() {
value={props.strokeWidth}
values={widths}
onChange={(v) => modifyProps("strokeWidth", v)}
+ tooltip="Stroke width"
>
diff --git a/frontend/src/features/authoring/topbar/TextSection.tsx b/frontend/src/features/authoring/topbar/TextSection.tsx
index e9fc81d7..6a17cb23 100644
--- a/frontend/src/features/authoring/topbar/TextSection.tsx
+++ b/frontend/src/features/authoring/topbar/TextSection.tsx
@@ -58,12 +58,12 @@ function TextSection() {
/>
-
- modifyStyle("fontSize", value)}
- />
-
+
+ modifyStyle("fontSize", value)}
+ />
+
modifyStyle("fontWeight", value)}
enabled="bold"
disabled="normal"
+ tooltip="Bold"
>
@@ -79,6 +80,7 @@ function TextSection() {
onToggle={(value) => modifyStyle("fontStyle", value)}
enabled="italic"
disabled="normal"
+ tooltip="Italic"
>
@@ -87,18 +89,21 @@ function TextSection() {
onToggle={(value) => modifyStyle("textDecoration", value)}
enabled="underline"
disabled="none"
+ tooltip="Underline"
>
modifyStyle("textColor", value)}
+ tooltip="Text color"
>
A
modifyStyle("highlightColor", value)}
+ tooltip="Highlight color"
>
@@ -114,6 +119,7 @@ function TextSection() {
,
]}
onChange={(value) => modifyStyle("alignment", value)}
+ tooltip="Alignment"
>
@@ -122,6 +128,7 @@ function TextSection() {
value={style.lineHeight}
values={[1, 1.1, 1.25, 1.5, 1.75, 2]}
onChange={(value) => modifyStyle("lineHeight", value)}
+ tooltip="Line height"
>
diff --git a/frontend/src/features/authoring/topbar/Topbar.tsx b/frontend/src/features/authoring/topbar/Topbar.tsx
index 30dfc69a..4dc3af14 100644
--- a/frontend/src/features/authoring/topbar/Topbar.tsx
+++ b/frontend/src/features/authoring/topbar/Topbar.tsx
@@ -44,12 +44,12 @@ function Topbar({ saving, save }: { saving: boolean; save: () => void }) {
-
+
-
+
@@ -59,7 +59,7 @@ function Topbar({ saving, save }: { saving: boolean; save: () => void }) {
{/* element creation */}
-
+
switchCreate("textbox")}>
@@ -72,12 +72,12 @@ function Topbar({ saving, save }: { saving: boolean; save: () => void }) {
{/* reorder */}
-
+
bringToFront(selected)}>
-
+
sendToBack(selected)}>
diff --git a/frontend/src/features/authoring/wrapper/ChromePicker.tsx b/frontend/src/features/authoring/wrapper/ChromePicker.tsx
index a71d6f1d..e8b904ee 100644
--- a/frontend/src/features/authoring/wrapper/ChromePicker.tsx
+++ b/frontend/src/features/authoring/wrapper/ChromePicker.tsx
@@ -5,9 +5,11 @@ function ChromePicker({
children,
value,
onChange,
+ tooltip,
}: React.PropsWithChildren<{
value: string;
onChange: (value: string) => void;
+ tooltip?: string;
}>) {
const [open, setOpen] = useState(false);
const ref = useRef(null);
@@ -25,7 +27,10 @@ function ChromePicker({
return (
-
+
setOpen(!open)}
diff --git a/frontend/src/features/authoring/wrapper/MultiInput.tsx b/frontend/src/features/authoring/wrapper/MultiInput.tsx
index d7b1f3b7..05330a0c 100644
--- a/frontend/src/features/authoring/wrapper/MultiInput.tsx
+++ b/frontend/src/features/authoring/wrapper/MultiInput.tsx
@@ -5,6 +5,7 @@ type MultiInputProps = React.PropsWithChildren<{
values: MultiInputProps["value"][];
items?: ReactElement[];
onChange: (value: MultiInputProps["value"]) => void;
+ tooltip?: string;
}>;
function MultiInput({
@@ -13,10 +14,14 @@ function MultiInput({
items,
onChange,
children,
+ tooltip,
}: MultiInputProps) {
return (
-
+
{children}
void;
enabled: string;
disabled: string;
+ tooltip?: string;
}>;
function ToggleInput({
@@ -11,6 +12,7 @@ function ToggleInput({
onToggle,
enabled,
disabled,
+ tooltip,
}: ToggleInputProps) {
const active = value === enabled;
@@ -20,7 +22,10 @@ function ToggleInput({
}
return (
- -
+
-
{children}