feat(noise-texture): introduce NoiseTexture component#944
feat(noise-texture): introduce NoiseTexture component#944Yeom-JinHo merged 8 commits intomagicuidesign:mainfrom
Conversation
…and documentation - Added Noise Texture component, an SVG fractal noise layer utilizing feTurbulence for subtle texture overlays. - Included multiple demo examples: Noise Texture Demo, Noise Texture Demo (newsletter card), Noise Texture Demo (button), and Noise Texture Demo (input). - Updated registry and documentation to reflect the new component and its usage. - Enhanced main documentation with installation instructions and usage examples. Co-authored-by: Jinho Yeom <pwlsghq@naver.com>
|
@chishiyac is attempting to deploy a commit to the product-studio Team on Vercel. A member of the Team first needs to authorize it. |
… files - Removed redundant import statement in button component. - Cleaned up trailing whitespace in multiple documentation files for glare-hover, hexagon-pattern, noise-texture, and striped-pattern components. - Updated formatting in the noise-texture component's props interface for better readability.
|
One note: I've added my name to the credits for the components I've added. I hope that's not a problem... |
|
@chishiyac Before we merge, I do have one concern: the noise looks nice and clear in light mode, but in dark mode it feels a bit too subtle and hard to notice. Could you take another look at that when you get a chance? Appreciate it! |
|
Hey 👋 Thank you so much for allowing me to contribute to the project and for giving me this opportunity , I really appreciate it 🙌 Thanks again for implementing this so quickly, the execution is clean and well thought out. I’ve been testing the new shape variants, and everything is working smoothly. The transitions feel great, especially with how the shapes originate from the toggle button. From a user perspective, this makes a lot of sense since the toggler is often placed in areas like the navbar, footer, or bottom corner, and the animation naturally starts from that interaction point. That said, I was also thinking about an additional use case. In some designs, users might prefer the transition to originate from the center of the screen instead of the toggle button, to create a more global or cinematic effect. Based on this idea, I experimented with an implementation and introduced an optional prop called I’ve created a separate PR for this enhancement and also committed the changes to the branch. If you have some time, I’d really appreciate it if you could review it and share your thoughts. I’ve tried to keep the implementation aligned with the existing code structure and ensured it remains simple and user-friendly. Would love to hear your feedback on whether this fits well within the component’s design. I’m happy to refine it further based on your suggestions, and I’d love to continue contributing more to Magic UI going forward Thank you 🙏 |
- Changed default values for `frequency`, `octaves`, and `noiseOpacity` in the NoiseTexture component. - Updated documentation to reflect the new default values and improved formatting for better readability. - Adjusted demo examples to utilize the updated `noiseOpacity` prop for consistency.
Hi @Yeom-JinHo! Hope you're doing well I just pushed a new commit addressing the improvements you pointed out. Hopefully it aligns with what you had in mind, but feel free to let me know if you'd like anything tweaked further! Really appreciate your feedback! |
|
@chishiyac I’m going to add a couple of tiny follow-up commits on my side, then I’ll get this merged. Really appreciate your continued contributions and the care you put into this PR. Thanks again for all the great work! |
Description
This PR adds the Noise Texture component: a reusable, pointer-events–disabled SVG overlay that uses SVG filters (
feTurbulence, desaturation, andfeComponentTransfer) so you can add grain-style texture without raster assets. It ships with four registry examples (default panel, newsletter-style card, button, and input), full Magic UI registry entries and generatedpublic/r/*.json, documentation atnoise-texture.mdx(CLI and manual install, examples, props), and sidebar/docs config updates.Changes
NoiseTextureinregistry/magicui/noise-texture.tsxwith props such asfrequency(baseFrequency),octaves,slope(post-desaturation contrast), andopacity, plus standard SVG/classNamepassthrough.noise-texture-demo,noise-texture-demo-2,noise-texture-demo-3, andnoise-texture-demo-4underregistry/example/, wired inregistry-examples.tsand the registry__index__.registry-ui.ts,registry/__index__.tsx, andpublic/r/JSON for the block and demos.content/docs/components/noise-texture.mdxandconfig/docs.tsupdate for navigation.public/llms.txtandpublic/llms-full.txtupdated to list the component and example files.Motivation
I didn't have anywhere to store the component LMAO, and why not store it in the library most used by Design Engineers? Joking aside, I just thought it could be a good addition so people can build more things in a derivative way.
Breaking Changes
None.
Screenshots
Device / browser / viewport: (e.g. Chrome · macOS · 1440×900 — match your capture)