Skip to content

Commit f8a3adb

Browse files
authored
Roughjs rough style props (#8)
* Add roughness, bowing, and seed props * Remove bowing prop * Update slides.md * Add changeset
1 parent bd0eb8f commit f8a3adb

File tree

4 files changed

+25
-3
lines changed

4 files changed

+25
-3
lines changed

.changeset/common-sites-hope.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"slidev-addon-fancy-arrow": minor
3+
---
4+
5+
Add roughness and seed props

components/FancyArrow.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ const props = defineProps<{
1919
arc?: number | string;
2020
arrowHeadType?: "line" | "polygon";
2121
arrowHeadSize?: number | string;
22+
roughness?: number | string;
23+
seed?: number | string;
2224
}>();
2325
2426
const point1 = props.id1
@@ -37,6 +39,8 @@ const roughSvg = useRoughArrow({
3739
centerPositionParam: Number(props.arc ?? 0),
3840
arrowHeadType: props.arrowHeadType ?? "line",
3941
arrowHeadSize: props.arrowHeadSize ? Number(props.arrowHeadSize) : null,
42+
roughness: props.roughness ? Number(props.roughness) : undefined,
43+
seed: props.seed ? Number(props.seed) : undefined,
4044
});
4145
</script>
4246

components/use-rough-arrow.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ export function useRoughArrow(props: {
4646
width: number;
4747
arrowHeadType: "line" | "polygon";
4848
arrowHeadSize: number | null;
49+
roughness?: number;
50+
seed?: number;
4951
twoWay: boolean;
5052
centerPositionParam: number;
5153
}) {
@@ -56,17 +58,20 @@ export function useRoughArrow(props: {
5658
width,
5759
arrowHeadType,
5860
arrowHeadSize,
61+
roughness,
62+
seed,
5963
twoWay,
6064
centerPositionParam,
6165
} = props;
62-
6366
const options = {
6467
stroke: color,
6568
strokeWidth: width,
6669
fill: color,
6770
fillStyle: "solid",
68-
};
69-
71+
// We don't support the `bowing` param because it's not so effective for arc.
72+
...(roughness !== undefined && { roughness }),
73+
...(seed !== undefined && { seed }),
74+
} as const;
7075
const svg = ref<SVGSVGElement>(
7176
document.createElementNS("http://www.w3.org/2000/svg", "svg"),
7277
);

slides.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
---
2+
mdc: true
3+
---
24

35
# Fancy Arrow
46

7+
## Slidev addon for drawing arrows with <span v-mark.red id="fancy-styles">fancy styles</span>,
8+
9+
<span v-click id="rough-js">powered by [Rough.js](https://roughjs.com).</span>
10+
11+
<FancyArrow v-after id1="rough-js" pos1="bottomright" id2="fancy-styles" pos2="bottomleft" color="red" width="2" arc="-0.3" seed="1" roughness="2" />
12+
513
---
614

715
# Demo

0 commit comments

Comments
 (0)