├── .eslintrc.json ├── .gitignore ├── README.md ├── app ├── Room.tsx ├── favicon.ico ├── globals.css ├── layout.tsx └── page.tsx ├── components.json ├── components ├── LeftSidebar.tsx ├── Live.tsx ├── Loader.tsx ├── Navbar.tsx ├── RightSidebar.tsx ├── ShapesMenu.tsx ├── comments │ ├── Comments.tsx │ ├── CommentsOverlay.tsx │ ├── NewThread.tsx │ ├── NewThreadCursor.tsx │ ├── PinnedComposer.tsx │ └── PinnedThread.tsx ├── cursor │ ├── Cursor.tsx │ ├── CursorChat.tsx │ └── LiveCursors.tsx ├── reaction │ ├── FlyingReaction.module.css │ ├── FlyingReaction.tsx │ └── ReactionButton.tsx ├── settings │ ├── Color.tsx │ ├── Dimensions.tsx │ ├── Export.tsx │ └── Text.tsx ├── ui │ ├── button.tsx │ ├── dropdown-menu.tsx │ ├── input.tsx │ ├── label.tsx │ └── select.tsx └── users │ ├── ActiveUsers.tsx │ ├── Avatar.module.css │ ├── Avatar.tsx │ └── index.module.css ├── constants └── index.ts ├── hooks └── useInterval.ts ├── lib ├── canvas.ts ├── key-events.ts ├── shapes.ts ├── useMaxZIndex.ts └── utils.ts ├── liveblocks.config.ts ├── next.config.mjs ├── package-lock.json ├── package.json ├── postcss.config.js ├── public ├── assets │ ├── CursorSVG.tsx │ ├── align-bottom.svg │ ├── align-horizontal-center.svg │ ├── align-left.svg │ ├── align-right.svg │ ├── align-top.svg │ ├── align-vertical-center.svg │ ├── back.svg │ ├── circle.svg │ ├── comments.svg │ ├── delete.svg │ ├── favicon.ico │ ├── freeform.svg │ ├── front.svg │ ├── group.svg │ ├── hash.svg │ ├── image.svg │ ├── line.svg │ ├── loader.gif │ ├── logo.svg │ ├── polygon.svg │ ├── rectangle.svg │ ├── reset.svg │ ├── select.svg │ ├── text.svg │ ├── triangle.svg │ └── ungroup.svg ├── next.svg └── vercel.svg ├── tailwind.config.ts ├── tsconfig.json └── types ├── declaration.d.ts └── type.ts /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | .yarn/install-state.gz 8 | 9 | # testing 10 | /coverage 11 | 12 | # next.js 13 | /.next/ 14 | /out/ 15 | 16 | # production 17 | /build 18 | 19 | # misc 20 | .DS_Store 21 | *.pem 22 | 23 | # debug 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | 28 | # local env files 29 | .env*.local 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Real-time Figma Clone 🎨 2 | 3 | Welcome to the real-time Figma Clone project! This project aims to replicate the functionality of Figma with real-time collaboration features using a stack of popular technologies including Next.js, TypeScript, Liveblocks, Fabric.js, Shadcn, and Tailwind CSS. 🚀 4 | 5 |
Loading...
13 |{message}
21 |