diff --git a/README.md b/README.md index f806c64..ba0a604 100644 --- a/README.md +++ b/README.md @@ -1,80 +1,26 @@ -

- πŸ‰πŸ”₯ Renderdragon πŸ”₯πŸ‰ -

+# Renderdragon -

- Renderdragon Logo -

+Renderdragon is a web platform offering free, ad-free tools, assets, music, and shaders for Minecraft content creators to level up their YouTube videos and thumbnails. -

- FREE Tools & Assets for Minecraft YouTube Creators
- No ads. No gimmicks. Just pure creative power.
- 🌐 renderdragon.org β€’ - πŸ’¬ Join our Discord -

+## Tools ---- +- **YouTube Tools** – Download thumbnails and see stats +- **Copyright Checker** – Check if music is safe for content +- **Background Generator** – Create custom backgrounds +- **Text Generator** – Generate pixel-style text overlays +- **Player Renderer** – Render Minecraft player skins -## 🧱 What is Renderdragon? +## Assets -**Renderdragon** is your ultimate toolkit for creating **Minecraft YouTube content**. Whether you're crafting a cinematic masterpiece or just getting started with Let’s Plays, we’ve got you covered β€” **totally free** and **ad-free**. +Browse hundreds of free resources including music, sound effects, animations, fonts, images, and icons β€” all curated for Minecraft YouTube creators. -### πŸ”§ Included Tools: -- 🎡 Royalty-Free **Music & SFX Library** -- 🎬 **Animations** & visual overlays -- πŸ€– **AI-Powered Title Generator** -- πŸ“₯ **YouTube Video Downloader** -- ⚠️ **Copyright Checker** +## Links -> All with a **pixel art** feel and built just for creators. +- Website: https://renderdragon.org +- Discord: https://discord.renderdragon.org +- Twitter: https://x.com/_renderdragon +- YouTube: https://www.youtube.com/channel/UCOheNYpPEHcS2ljttRmllxg ---- +## Tech -## πŸš€ Why Renderdragon? - -- 🟩 **No ads, no sketchy popups** -- 🟦 Built **by creators, for creators** -- 🟨 Everything tailored for **Minecraft content** -- πŸŸͺ Beautiful retro UI with **pixel art** aesthetic -- πŸŸ₯ 100% **free to use**, forever - ---- - -## πŸ‰ Our Mascot - -Meet the **Enderdragon with fire breath** β€” our fierce but friendly symbol of power, creativity, and Minecraft-y goodness. πŸ”₯ - ---- - -## πŸ“‘ Join the Community - -πŸ’¬ Hop into the conversation and get sneak peeks of new assets: -πŸ‘‰ [discord.renderdragon.org](https://discord.renderdragon.org) - ---- - -## πŸ“Ž Links - -- 🌐 Website: [renderdragon.org](https://renderdragon.org) -- πŸ“’ Twitter: https://x.com/_renderdragon -- πŸŽ₯ YouTube: https://www.youtube.com/channel/UCOheNYpPEHcS2ljttRmllxg - ---- - -## πŸ› οΈ Tech Stack (for the curious) - -> Built using **Vite**, **React**, **Tailwind css**, **Shadcn/ui**, and a dash of **voxel magic**. - ---- - -## ⭐ Support / Contribute - -Right now we're focused on helping creators β€” not donations. If you want to contribute, join our [Discord](https://discord.renderdragon.org), share your ideas, or help spread the word! - -> πŸ’š Built with passion for Minecraft creators everywhere. - ---- - -

- "Fuel your channel. Feed the dragon." πŸ‰ -

+Vite, React, Tailwind CSS, Shadcn/ui, Supabase, Cloudflare Workers. diff --git a/index.html b/index.html index 64953e7..5a74353 100644 --- a/index.html +++ b/index.html @@ -38,6 +38,7 @@ + diff --git a/public/VERT_Screencast_20260705_160503.gif b/public/VERT_Screencast_20260705_160503.gif new file mode 100644 index 0000000..263e260 Binary files /dev/null and b/public/VERT_Screencast_20260705_160503.gif differ diff --git a/public/modrinth.svg b/public/modrinth.svg new file mode 100644 index 0000000..5a65d3e --- /dev/null +++ b/public/modrinth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/resources/GreenVoidPopup.tsx b/src/components/resources/GreenVoidPopup.tsx new file mode 100644 index 0000000..30d4537 --- /dev/null +++ b/src/components/resources/GreenVoidPopup.tsx @@ -0,0 +1,98 @@ +import { useState, useEffect } from 'react'; +import { + Dialog, + DialogContent, +} from '@/components/ui/dialog'; +import { Button } from '@/components/ui/button'; +import { IconX, IconPalette, IconBrightness, IconEye, IconCloud, IconSparkles } from '@tabler/icons-react'; + +const GREEN_VOID_KEY = 'green-void-changelog-dismissed'; +const MC_PLAYLIST_KEY = 'mc-creator-playlist-changelog-dismissed'; + +const GreenVoidPopup = () => { + const [open, setOpen] = useState(false); + + useEffect(() => { + const greenVoidDismissed = localStorage.getItem(GREEN_VOID_KEY); + const mcPlaylistDismissed = localStorage.getItem(MC_PLAYLIST_KEY); + if (!greenVoidDismissed && mcPlaylistDismissed) { + setOpen(true); + } + }, []); + + const dismiss = () => { + localStorage.setItem(GREEN_VOID_KEY, 'true'); + setOpen(false); + }; + + return ( + { if (!o) dismiss(); }}> + +
+

+ Green Void Shader Pack +

+ + Green Void Shader Pack + +
+

+ Green Void is a Minecraft shader pack designed for content creators. Change the chroma color of the sky, terrain, and entities to create stunning thumbnail visuals. +

+ +
+

+ + Features +

+
    +
  • + + Chroma sky β€” recolor the sky with any chroma color +
  • +
  • + + Chroma terrain β€” apply chroma effects to all terrain blocks +
  • +
  • + + Chroma entities β€” change entity colors for seamless composites +
  • +
  • + + Full color control β€” pick any chroma key for perfect thumbnails +
  • +
+
+ +
+ + Modrinth + Download on Modrinth + + +
+
+ + +
+
+
+ ); +}; + +export default GreenVoidPopup; diff --git a/src/components/resources/ResourceCard.tsx b/src/components/resources/ResourceCard.tsx index 6b5a22f..a82103c 100644 --- a/src/components/resources/ResourceCard.tsx +++ b/src/components/resources/ResourceCard.tsx @@ -21,11 +21,6 @@ interface ResourceCardProps { const ResourceCard = ({ resource, onClick }: ResourceCardProps) => { const [isImageLoaded, setIsImageLoaded] = useState(false); - const [isHovered, setIsHovered] = useState(false); - const [hoverToPlay] = useState(() => { - const stored = localStorage.getItem('hoverToPlay'); - return stored === null ? false : stored === 'true'; - }); const { user } = useAuth(); // Reset image loaded state when resource changes @@ -207,7 +202,7 @@ const ResourceCard = ({ resource, onClick }: ResourceCardProps) => { ); case "animations": - return isHovered && hoverToPlay ? ( + return (
{
)} - ) : ( -
-
- - Hover to play -
-
); default: return null; @@ -244,8 +232,6 @@ const ResourceCard = ({ resource, onClick }: ResourceCardProps) => { onClick(resource)} - onMouseEnter={() => setIsHovered(true)} - onMouseLeave={() => setIsHovered(false)} className={cn( "pixel-card group cursor-pointer hover:border-primary transition-all duration-300 h-full", isFavorite && "border-red-500/50", diff --git a/src/pages/Account.tsx b/src/pages/Account.tsx index 8e0b9af..f347114 100644 --- a/src/pages/Account.tsx +++ b/src/pages/Account.tsx @@ -8,11 +8,10 @@ import { Label } from '@/components/ui/label'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; import { Separator } from '@/components/ui/separator'; -import { Switch } from '@/components/ui/switch'; import Navbar from '@/components/Navbar'; import Footer from '@/components/Footer'; import { toast } from 'sonner'; -import { IconUser, IconMail, IconCalendar, IconLogout, IconVideo } from '@tabler/icons-react'; +import { IconUser, IconMail, IconCalendar, IconLogout } from '@tabler/icons-react'; import { motion } from 'framer-motion'; import { Helmet } from 'react-helmet-async'; import AccountPageSkeleton from '@/components/skeletons/AccountPageSkeleton'; @@ -25,10 +24,7 @@ const Account = () => { const [firstName, setFirstName] = useState(''); const [lastName, setLastName] = useState(''); const [isUpdating, setIsUpdating] = useState(false); - const [hoverToPlay, setHoverToPlay] = useState(() => { - const stored = localStorage.getItem('hoverToPlay'); - return stored === null ? false : stored === 'true'; - }); + const avatarSrc: string | undefined = profile?.avatar_url ?? ((user?.user_metadata as Record | undefined)?.avatar_url as string | undefined) ?? @@ -234,23 +230,7 @@ const Account = () => {

Preferences

-
-
- -
- Hover to Play Videos -

Auto-play video previews when hovering over animation cards

-
-
- { - setHoverToPlay(checked); - localStorage.setItem('hoverToPlay', String(checked)); - toast.success(checked ? 'Hover to play enabled' : 'Hover to play disabled'); - }} - /> -
+
diff --git a/src/pages/ResourcesHub.tsx b/src/pages/ResourcesHub.tsx index f0fe650..02445b3 100644 --- a/src/pages/ResourcesHub.tsx +++ b/src/pages/ResourcesHub.tsx @@ -17,6 +17,7 @@ import MusicPacksTab from '@/components/resources/MusicPacksTab'; import MusicMoodFilter from '@/components/resources/MusicMoodFilter'; import MinecraftMusicFilter from '@/components/resources/MinecraftMusicFilter'; import MinecraftChangelogPopup from '@/components/resources/MinecraftChangelogPopup'; +import GreenVoidPopup from '@/components/resources/GreenVoidPopup'; import McSoundsBrowser from '@/components/resources/McSoundsBrowser'; import McIconsBrowser from '@/components/resources/McIconsBrowser'; import AuthDialog from '@/components/auth/AuthDialog'; @@ -572,9 +573,10 @@ const ResourcesHub = () => { open={authDialogOpen} onOpenChange={setAuthDialogOpen} /> - + + diff --git a/tailwind.config.ts b/tailwind.config.ts index a2d7e81..49a69aa 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -22,8 +22,9 @@ export default { fontFamily: { geist: ['Geist Sans', 'sans-serif'], 'geist-mono': ['Geist Mono', 'monospace'], - minecraftia: ['Minecraftia', 'monospace'], - 'jetbrains-mono': ['JetBrains Mono', 'monospace'], + minecraftia: ['Minecraftia', 'monospace'], + minecraft: ['Minecraft', 'sans-serif'], + 'jetbrains-mono': ['JetBrains Mono', 'monospace'], }, colors: { border: 'hsl(var(--border))',