Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Manage global font size
Specify global spacing for your website
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Benefits of using a static site generator like Elements
RapidWeaver Elements is a powerful static website builder (local CMS system) that perfectly balances simplicity with professional-grade capabilities. Its intuitive drag-and-drop interface eliminates the need for coding knowledge, while still providing users with complete control over their design choices. With a rich selection of professionally designed templates and a streamlined publishing process, RapidWeaver Elements makes it possible for anyone to create stunning websites.
What truly sets RapidWeaver Elements apart is its commitment to generating optimized, clean HTML code that ensures fast loading times and excellent search engine rankings.
By using Elements, you maintain full ownership of your content and hosting choices, free from platform lock-in. This combination of user-friendly features, professional output, and creative freedom makes Elements an excellent choice for anyone looking to build a modern, efficient static website.
Contine reading to learn more about why RapidWeaver Elements is a better choice than using an un-secure online cms, like Wordpress.
Static websites are pre-built HTML files that remain unchanged until manually updated. They're like a perfectly printed book - the content is fixed, polished, and ready to be viewed instantly.
Data-driven websites, on the other hand, generate pages dynamically by pulling content from databases when visitors request them. This is like having to assemble a book every time someone wants to read it.
Complexity: Data-driven websites require complex setup including configuring database servers, implementing server-side programming languages, setting up API endpoints, managing database connections, and coordinating between front-end and back-end systems.
Slower Performance: Each page must be generated on-demand, requiring database queries and server processing.
Higher Costs: Database servers and more powerful hosting are required to handle dynamic content generation.
Security Vulnerabilities: Databases and server-side code create additional attack vectors for hackers.
Maintenance Headaches: Regular database maintenance, backups, and security updates are necessary.
Static websites eliminate these drawbacks by serving pre-built content, resulting in faster, more secure, and more reliable websites that are significantly easier to maintain.
Speed and Performance Static websites load incredibly fast since they don't require server-side processing or database queries. Pages are pre-rendered and served directly to visitors, resulting in lightning-quick load times.
SEO Benefits
Search engines can easily crawl and index static content, potentially leading to better search rankings. The fast load times also contribute to improved SEO performance.
Enhanced Security
With no database or server-side applications to exploit, static sites are inherently more secure. There are fewer vulnerabilities and attack vectors for malicious actors to target.
Cost-Effective Hosting static websites is significantly cheaper since they require minimal server resources. Many platforms offer free hosting for static sites, and scaling costs remain low even with high traffic.
Reliability Static sites are more reliable because they have fewer points of failure. Without databases or complex server configurations, there's less that can go wrong.
Portability Static sites can be hosted anywhere and easily moved between hosting providers, giving you maximum flexibility and avoiding vendor lock-in.
The variety of websites you can build with RapidWeaver Elements is completely open, and we like to think you can build pretty much anything with it. However, there are some types of websites that lend themselves to being static:
Company Websites: Small to medium-sized business websites.
Documentation Sites: Technical documentation, API references.
Portfolio Websites: Personal or professional portfolios.
Landing Pages: Marketing landing pages.
Event Websites: Conference or event sites.
Personal Websites: Hobbies, niche interests.
Digital Garden: Your very own corner of the internet.
RapidWeaver Elements is a website builder for macOS.
Elements is a no-code static website builder for macOS. It's designed to cater to all skill levels, whether you’re a beginner looking for simplicity or an experienced web developer needing advanced customization, Elements offers the perfect balance. With its user-friendly interface and powerful features, you can create fast, efficient, and beautiful websites with ease.
Elements has everything you need built-in to build a beautiful modern website, and it's getting better all the time thanks to our passionate user base.
Elements is moving from Private Beta to Early Access, click here to learn more about this exciting announcement!
We listen to our amazing community of passionate users and build the features they want. Why not Suggest a Feature, or View the Roadmap (as voted on by our users).
Elements has been in the works for over three years now. We’ve been working tirelessly with beta testers to make sure we’re building the best web design software for Mac. Check out the feature list below to learn more!
The Elements editor has been written from the ground up with the latest web technologies, this makes the editing experience blazingly fast and easy to use. What you see is what you get.
RapidWeaver Elements ships with a selection of beautiful, pre-built website templates to help kick start your next project.
Includes a complete collection of Components to design and build your own website. Everything from headings, images, video, galleries, flex, grids, navigation, and more are included.
Don't like the color or the typography in your website? No problem. Change it yourself with the visual theme editor.
Right out of the box Elements supports responsive websites giveing you full control of how your site looks on mobile, tablet and Laptop and more.
Changing colours on your website to support Dark and Light mode shouldn't be hard, that's why we've made it as easy as clicking a button.
Hover and scroll animations are easy to configure on with just a few clicks. Fade-in, Scroll, Blur, Hover, it's all there and more.
Write long form content with different style blocks just like a modern word-processor, all controlled via the global Theme Studio.
Build your own Custom Components for your website using the Elements API.
Elements makes it easy to edit the raw Template HTML to add scripts or code snippets.
Every Elements Cloud account comes with 1GB of free cloud storage. The perfect place to backup or share your latest projects. Sign-up in-app for free.
See every Component on your page. Browse and select page elements, you can also move, add and remove them. You can even drag between the editor and node browser.
Publish your website online using the built-in Smart Publish Engine. Supporting Local, SFTP, FTP, FTPS, and Amazon S3. Elements only uploads the chnaged files making for blazing fast update times.
Never get stuck with writing or polishing your conent, let Apple Inteligence (and ChatGPT) help you write, express yourself, and get things done effortlessly. Requires macOS Sequoia.
Explore a curated selection of addons, including beautifully crafted templates and versatile components, designed to help you build stunning websites with ease.
Learn more about Elements Early Access
Elements is moving from Beta to Early Access! While it’s still in development, it’s now ready for real-world use, and we’re releasing new builds every week based on your feedback.
You can purchase Elements via our website.
The Elements Beta helped us refine the foundation, and now we’re confident Elements is ready for real-world projects. Early Access lets more people use it while we continue fine-tuning features and adding improvements.
You get access to Elements now – no waiting for a full release!
Frequent updates – we’ll keep refining and adding features based on your input.
Your feedback matters – Early Access is a collaboration, and your insights help shape Elements.
Not quite “final” yet – some features are still in progress, and you may run into a few quirks along the way.
If you're comfortable using in-development software, you can get Early Access today by visiting elementsapp.io and purchasing a copy. Once you do, you’ll be able to start building with Elements right away!
Right now, Early Access is only available to paying users. This allows us to focus on providing the best experience and support for those actively using Elements.
This approach ensures that our paying customers get taken care of first, with frequent updates and improvements based on real-world use. Your support helps shape the future of Elements, and we truly appreciate it! 🙌✨
As long as needed, but our goal is to ship a 1.0 version later this year!
By using Elements, sharing your experiences, and letting us know what works (and what could be better), you’re playing a huge role in shaping its future. We love hearing from you, so keep that feedback coming!
Thanks for being part of this journey—we can’t wait to see what you create with Elements!
Learn more about why RapidWeaver Elements for macOS is the perfect choice for building your next website.
We listen to our amazing community of passionate users and build the features they want. Click here to Suggest a Feature, or View the Roadmap (as voted on by our users).
Be part of the Independent Web
Static Sites are just better
Supportive Community
Top-notch Support
RapidWeaver Elements is a desktop application for macOS.
First, you'll need to Download Elements — look for the download button on the page. When the download is complete double-click to unzip the file, then move Elements.app to your Applications Folder.
In order to run Elements you will need to meet the minimum requirements:
Requires macOS 13 Ventura or newer.
Apple Silicon or Intel based Mac.
Elements is built to work on all modern macs, so long as they meet the minimum requirements you'll be good to go.
If you are using an older Intel-based Mac with tools like MyBootMgr and OpenCore Legacy Patcher to install a newer macOS version unsupported by your hardware, you might encounter issues with Elements (Issue #1, Issue #2) — We do not recommend or support this setup.
Should you have any questions about installation or registration you can post on the Elements Support Forum and someone from the team will get right back to you.
Build your own space on the web, one you fully own and control.
A digital garden is a personal online space where individuals cultivate and organize their thoughts, ideas, and knowledge over time. Unlike a traditional blog, a digital garden is more dynamic and non-linear, allowing for continuous growth and evolution of content. It's a space where you can explore interlinked topics, make connections, and develop ideas organically, free from the constraints of typical social media platforms.
RapidWeaver Elements is the perfect tool to build your own Digital Garden.
Gardening is about claiming a small patch of the web for yourself, one you fully own and control.
This patch should not live on the servers of Facebook, LinkedIn, Twitter, Instagram (aka. also Facebook), or Medium. None of these platforms are designed to help you slowly build and weave personal knowledge. Most of them actively fight against it.
If any of those services go under, your writing and creations sink with it (crazier things have happened in the span of humanity). None of them have an easy export button. And they certainly won't hand you your data in a transferable format.
Read the full article over on maggieappleton.com
You deserve a home on the World Wide Web that’s built to keep you safe; a magical place for virtual living that‘s yours for life, existing in a sociable web. Read the full article over on Muni Blog.
A Digital Garden is lowercase b blogging. It's writing without worrying about what people will think. Read the full article over on christopherbiscardi.com
You can purchase Elements via our website.
If you have any issues or need anything clarifying, please email.
Q: I didn't receive a license email. Where is it?!
When you purchase Elements you will receive an order confirmation email within 5 minutes confirming your order along with your license number. The email will be sent from "mailer@fastspring.com" which is our payment provider. If you can't find the email it's usually because of one of the following reasons:
The email from us ended up in your Spam Folder.
You entered your email address incorrectly when purchasing (no shame, we've all done it!).
The first step is to check your spam folder for anything from Realmac Software or mailer@fastspring.com.
If you still can't find your order email, you can contact us directly: support@realmacsoftware.com. Please include your name, email address, and when you purchased Elements — this will help speed up the search!
Yes! We offer a 30 day money-back guarantee.
If you've purchased Elements from us and are not happy, let us know within 30 days, and we'll issue a refund for you.
Please forward your original email receipt from your purchase to obtain your refund. While you don't have to do this, it does make it much quicker for us to find and process.
Send this email to support@realmacsoftware.com
We generally issue refunds within 48 hours (often quicker).
Not in the traditional sense. When you purchase a Elements license from our website, you are automatically subscribed to one year of app updates. The license itself will not expire (you can use it forever), however the one year period of app updates will renew on an annual basis.
Please note the following:
Subscriptions automatically renew unless you cancel them.
If you cancel, your one year period of app updates will remain active until the next renewal date.
You can manage your subscription here.
You can cancel your subscription anytime via your Billing Manager.
We offer a 30 day money-back guarantee from the date you initially purchase a license for our software. During those initial 30 days you can cancel your subscription and request a refund with no questions asked.
Subsequent automatic subscription renewals are not refundable under our 30 day money-back guarantee.
Your one year period of app updates will remain active. You will continue to receive updates until the next renewal date. If you wish to receive further updates after that renewal date, you will need to manually re-subscribe.
You get to keep the version of Elements you're currently using, you just won't receive any further updates to it. You'll need to re-subscribe to start receiving updates again.
Choose the perfect license for your needs
With Elements’ three license options—Base, Plus, and Pro, you can choose the plan that best fits your needs, whether you're a casual user, hobbyist, or professional web designer.
You can purchase Elements via our website.
Each license includes:
Unlimited websites
Templates, Themes, and Components
1 year of free updates
Installation on up to 2 Macs simultaneously
1TB of Cloud Storage for Projects (An active license is required to use Elements Cloud).
Unlimited Support via Email and Forum
If your subscription expires, Elements can still be used, you just won't receive future updates until you resubscribe.
Every Elements license includes all you need to build the website you've always wanted, however, there are a few key differences highlighted in the table below. We find that most users prefer the Plus plan.
Custom Components
3
Unlimited
Unlimited
Global Components
2
Unlimited
Unlimited
Full Theme Customization
-
Yes
Yes
Remove Elements Branding
-
Yes
Yes
Form Webhooks
-
-
Yes
Priority Support
-
-
Yes
Resell Websites
-
-
Yes
Price
$59/year
$119/year
$249/year
The Plus license is designed for users who need or want more than the Base license but don’t require the full commercial permissions of the Pro license.
The Base license for Elements only allows the creation of 3 custom components per project. Plus and Pro licenses can create an unlimited number of Custom Components per project.
The Base license for Elements only allows the creation of 2 global components per project. Plus and Pro licenses can create an unlimited number of Global Components per project.
The Base license for Elements does not allow the creation or duplication of new or existing themes. Plus and Pro licenses can create and modify an unlimited number of themes.
The Base license for Elements will place a small floating badge in the corner of your website showing it was built with Elements. Plus and Pro licenses have no visible Elements branding.
Forms are available in all version of Elements, however, the ability to send form data via a webhook is only available in the Pro version of Elements.
An active Pro license is required for developing and selling websites to third-party clients. More details on this can be found below.
With the Plus license, your sites are free from any Elements branding. This allows for a more professional and polished look, whether you’re building personal projects, websites for friends, or community sites.
Beyond branding, Plus also unlocks additional features, including unlimited globals and unlimited custom components, giving you more flexibility in designing and managing your websites. While this license allows for a wide range of non-commercial use, it does not permit selling websites to clients.
If you ever decide to take on paid web design work, upgrading to Pro ensures you have the proper license for commercial projects.
An active Pro license is required for those using Elements as a professional tool. It ensures that as a Pro user you have everything you need to meet the demands of client work, from the freedom to sell websites to the reliable support and advanced features required to excel in a competitive market.
The Pro license pricing reflects the added value, flexibility, and commercial rights that the Pro license provides compared to the Base license.
Resell Websites and Client Projects - An active Pro license is required for users to develop and sell websites to third-party clients, making it the ideal choice for freelancers, agencies, or anyone building websites as part of their business. With this license, users have the freedom to fully leverage Elements’ powerful tools and customizations to create and deliver high-quality websites for clients, turning Elements into a valuable asset for generating revenue.
The Base license is meant for personal projects or hobbyists, while the Pro license is designed for freelancers, agencies, and businesses who are making money from reselling websites.
Priority Support - The Pro license is specifically aimed at professionals working on client projects, where timely support is crucial. Elements’ priority support helps Pro users troubleshoot issues, get answers to complex questions, and keep projects moving forward without delay—making it a reliable tool for maintaining client satisfaction and meeting project deadlines.
If you have any further questions about licensing please email support@realmacsoftware.com.
License Activation information
If you've lost your license, visit our License Manager and use the automated system to help find your previous purchases.
If you’ve tried using our license manager and are still having issues, please email support@realmacsoftware.com, and we’ll get you up and running.
Be sure to check your Spam folder. Just in case!
Our Billing Manager can help you check a subscription status, change payment details, and cancel your subscription. All you need is access to the email address you used to purchase our software.
If you no longer have access to the email address, contact support@realmacsoftware.com, and we'll be able to help you directly.
If you have access to the activated version of our Elements, do this:
Open your registered version of the App.
Go to the App menu → Registration…
Click "Deactivate" under the "Activations (1 of X)" button.
Confirm your decision.
That's it. You can now use the same license to register the app on another Mac.
If you don't have access to your old Mac, don't worry, you can still deactivate it following the steps above.
You can manage your license activations in the "Register…" window. This includes seeing what machines are licensed and deactivating any machines you no longer require.
Elements > Registration…
Hopefully this day will never come, but if you need to cancel your subscription for one of our apps, visit the Billing Manager page.
In the event you cancel your subscription, any apps registered will continue providing all of its updates till the end of the current subscription period (the one you’ve already paid for).
You'll see this message if you're trying to activate a newer version of Elements that was released after your subscription period ended.
If your subscription has expired and you're trying to use a new version of Elements that was released after your subscription period you'll see the "Update Period Expired" window. You now have a couple of options. You can choose to purchase a new subscription to get access to the new version or get an older version of Elements that was covered during your active subscription period.
Elements will show you what version you can still use underneath the "Renew License" button. Clicking the button will take you to the release notes page where you can download this version.
First, make sure you are running the latest version of Elements.
The first thing to check is that your license number is correct. You'll often see this error if the code is slightly wrong or missing a digit.
If you've triple-checked and made sure you're license code is correct, try the following steps:
Launch Elements and choose "Registration…" from the "Elements" menu.
Deactivate your Mac using the "Activations (1 of 2)" button, and Elements should become Unregistered. (if required)
Restart your Mac.
Launch Elements.
Open the Registration window again and press the "Activate License…" button and enter your new license details.
You should now be up and running.
If you're still having issues, you can email support@realmacsoftware.com, and we'll be able to help you out.
If you see the following "Unable to Activate" message, it may mean your license was entered incorrectly, or Elements is having trouble validating it over the internet.
You can email support@realmacsoftware.com with your license, we can check if it's valid and working. If it is, and your license is still not activating on your Mac, you should try the following things:
Check you don't have iCloud Private Relay or a VPN running.
Check you've not installed anything that blocks or tracks network traffic (i.e. LittleSnitch.app).
Reboot your Mac.
Try activating your license on another Mac.
Try activating your license on another network (3G/4G from your Phone).
Try starting your Mac in Safe Mode. A guide can be found here on how to do this.
Trying out the above will help you narrow down the problem and determine if your Mac or network is causing the issue.
Learn more about Elements WYSIWYG Editor
RapidWeaver Elements comes equipped with a powerful built-in WYSIWYG (What You See Is What You Get) editor that allows you to create and refine your website visually, in real time. Whether you’re a seasoned web designer with years of experience or someone just starting out, you’ll feel right at home with its intuitive interface.
The WYSIWYG editor in Elements is designed to be both versatile and accessible. For professionals, it provides the flexibility and precision needed to bring detailed designs to life quickly. You’ll find that you can tweak your layout, typography, and styling on the fly, with results that reflect exactly how your site will appear when published.
If you’re a newcomer, Elements ensures you’re never overwhelmed. Its streamlined editing experience allows you to build and customize your website with ease, using familiar tools and controls. You can see changes as you make them, eliminating the guesswork and making the process enjoyable and straightforward.
With this editor, you can focus more on creativity and less on code. But when you do need to dive into the code, Elements has you covered with seamless integration between the WYSIWYG interface and custom HTML or CSS edits.
In short, RapidWeaver Elements’ WYSIWYG editor strikes the perfect balance between simplicity and power, making it an essential tool for anyone looking to create beautiful, functional websites efficiently.
Learn more about how the Elements design system works.
If you're just starting out with Elements it's important to take the time to learn the difference between Components and Global Components.
It's also worth noting that Elements is a Mobile first design system, you can learn more about all of this and more below. If you have more questions, please visit the forum.
The core components inside elements represent the basic building blocks of a webpage; they are at the foundation of your page design. They include things like containers, grids, headings, text, and buttons. They are singular items, like Lego bricks.
Some of the more advanced components go beyond the basics; these include things like menus and galleries.
Global Templates (or Globals as they are often called) are user created groups of components. Globals can help maintain a consistent design language across your entire site.
You can reuse global blocks across your site so you only need to update the content in one place and have it automagically mirrored to all other instances of that global. For example, this can be very useful for header and footer sections.
You can take Globals even further by overriding content and design aspects on an individual instance. For example, you might have a banner that you want to use on every page of your site, and you'd like the design to be consistent. You can use the override feature to customise the text and background image on each instance. You can even override the design settings on individual instances.
You can learn more about Global Templates here.
Elements takes a mobile-first design approach. Mobile has now surpassed desktop in global internet usage. Google has switched to mobile-first indexing. That’s why Elements takes a mobile-first approach to website design to ensure your sites work better and rank higher in search results.
We recommend designing at the mobile breakpoint first, and working your way up through the breakpoints to support larger screens.
Elements is built upon the popular Tailwind CSS framework, along with AlpineJS. and the GSAP Animation Library, which makes it a piece of cake to build modern responsive websites.
By standardising on the framework used inside Elements, we ensure third-party components work great with every website you build.
Elements builds a custom version of Tailwind CSS in real-time.
As you add, remove, or modify any components and content in your project, Elements generates the required CSS, and only the required CSS. Elements does not load Tailwind from a CDN. Doing so would have severely limited what we are able to do from a design and theming perspective.
To reiterate, all CSS generation happens in real-time as you edit your project. It’s truly amazing once you start working with it.
This setup ensures that Elements produces the smallest amount of CSS possible, as it only generates the CSS you are actually using in your project.
The way Elements generates CSS for you means there is no need for each developer to write and ship the same CSS over and over again. Elements offers you a modern, reliable, flexible design system that both developers and end users can utilize.
The design system in Elements allows the app, third-party developers, and end users to all create code, components, and content separately but still maintain consistency from a design/theming perspective.
Quick Add Window
Command-Shift-F
Next Workspace
Command+Option+.
Previous Workspace
Command+Option+,
Show/Hide Titles
Command+Option+'
Show/Hide Outlines
Command+shift+'
Show/Hide Selection
Command+'
Screens: Mobile
Command+1
Screens: SM
Command+2
Screens: MD
Command+3
Screens: LG
Command+4
Screens: XL
Command+5
Screens: 2XL
Command+6
Preview Page
Command+P
Automatically previews website in default browser.
Preview Page In…
Command+Option+P
Choose from all installed browsers on your system before Previewing.
The Definitive RapidWeaver Elements FAQ
Welcome to the official and in-depth FAQ documentation for all things RapidWeaver. This resource is designed to provide you with clear and concise answers to the most common questions about RapidWeaver Elements. Whether you’re just getting started or you’re an experienced user, our goal is to make sure you have all the information you need to build stunning websites with confidence.
A: Elements is in Early Access, and available to purchase. However, it is not a finished product and we don't have a set release date for the final 1.0 release. We're continuing to work closly with our paying early access customers to give them the support and features they need.
We hope to have an official 1.0 release available later this year. You can learn more about joining our Early Access programe here.
A: RapidWeaver Elements requires macOS Ventura (13.x) or newer.
A: Elements will not support Classic legacy themes. It’s been a tough decision to make, but ultimately we think Elements will be a much better product if we build it for the future of web design.
A: Not at this time, Element based websites are built completely differently so there's no easy way to open those older Classic documents. We may look at building an importer at a later date, should the demand be there.
However, you should see this as a great opportunity to refresh your website and bring it up-to-date with modern web technologies and standards.
A: Yes, you can install and run both applications simultaneously on your Mac. We anticipate this scenario to be quite popular as it allows users to manage older projects in Classic while simultaneously migrating and developing newer projects in Elements.
A: No, both versions of RapidWeaver will coexist as they cater to slightly different customer needs.
RapidWeaver Classic continues to serve thousands of customers who maintain and build existing websites using a variety of legacy plugins and addons. We will continue to develop and update RapidWeaver Classic to support this "classic" workflow. RapidWeaver Classic requires macOS 10.14 (Mojave) or a newer version.
RapidWeaver Elements represents our vision for reimagining web design on the Mac, it's easier and more powerful than ever before to build no-code websites.
A: While the initial version of Elements will not run on iPad, the technology we've built does open up the possibilities of making this a reality (something that just wasn't possible with Classic). It's important to note that this is not currently in our future plans, as our primary focus is on the Mac platform at this time.
A: Yes, please check the Elements Language documentation to get started.
Right click on a heading in the settings inspector to change how the inspector behaves.
Expand All - Will expand all settings.
Collapse All - Will collapse all open settings.
Single Group Mode - Switching to the single group mode only allows one setting area to be open at a time.
When in Single Group mode the only option available in the right-click menu is switch back to default mode.
Single Group Mode (ticked) - Untick to switch back to the default mode, this will then allow you to view multiple setting at the same time again.
Building your first website with RapidWeaver Elements for macOS.
This guide will walk you through the steps of building a website with Elements. So, grab a cup of tea (or coffee), and let's get started.
Be part of the independent web. Own your content.
Realmac Software has always been an indie company and has never taken on outside investment. We've remained an independent and private company for over 20 years. We are and always have been 100% customer funded and focused.
Just like our company, we believe the web should stay open and independent. When you post something on the web, it should belong to you, not a corporation. By joining the indie web movement, and using RapidWeaver Elements, your content stays yours and in your control.
You can post anything you want, in any format you want. In addition, you share simple readable links such as example.com/ideas. These links are permanent and will always work.
Take back control and build your next website with Elements on macOS.
Seven Reasons for having a Personal Website Maintaining my own personal website has been one of the most amazing, challenging, rewarding, growth-promoting, time-consuming, and adventurous experiences of my life.
For The Love of God, Make Your Own Website The internet sucks now--but it doesn't have to.
You should have a website You already have a social media account. But you should also have a personal website.
Autonomy Online: A Case For The IndieWeb One of the principles of the IndieWeb is that you own your content
This Page is Under Construction. A love letter to the personal website.
The Node Browser allows you to see and manage the entire structure of your page, this is esecially useful for intricate designs, and larger more complex pages.
To filter down to specific Components you can use the search field, located at the bottom of the Node Browser.
The Node Browser has the following options when right-clicking on a Component in the Node Browser.
Rename
Edit the title of the selected Component.
Duplicate
Duplicate a single component and/or all sub components.
Duplicate without Content
Will duplicate the selected Component without any of the Child components.
Convert to Global
Unlink from Global
Select Similar
Will select all matching Components in the Node Browser.
View Help…
Opens the default System browser with the Help page for the selected Component.
Remove
Deletes the currently selected Component.
Convert the current selection into a .
Unlink the current selection into a .
How to use Apple Intelligence Writing Tools in RapidWeaver Elements.
We’re thrilled to share that Elements now supports Apple Intelligence in its Text based Components, giving you a powerful, seamless way to enhance your writing workflow. Whether you’re crafting headings, paragraphs, or rich text blocks, these AI-powered tools are designed to make writing faster, smarter, and more intuitive.
You can now effortlessly generate, refine, and polish your content right within Elements. Need a quick draft to kickstart your creativity? Want to rephrase a sentence or simplify a technical explanation? The Apple Intelligence writing tools are here to help with just a click or tap.
With these new capabilities, you’ll spend less time worrying about wording and more time bringing your creative vision to life. We’re excited to see how these tools help you express yourself more clearly and efficiently.
Give them a try and let us know what you think!
While the WYSIWYG editor allows you to view your design, you'll sometimes want to check how it looks in a browser.
To preview your website in your default browser, you can click the Safari Browser icon in the toolbar (Command-P). You can also press Command-Option-P to choose a different browser.
The responsive breakpoint system in Elements allows you to change component properties at different user defined breakpoints (i.e. Mobile, Table, Desktop, etc).
Breakpoints for a project be defined in the Screens area of the Theme Studio.
If you pay attention, on the first “mobile” screensize you do not have any blue dots. As you move up to the next size (SM) you'll see grey dots beside the controls in the Component inspector. If you click on a grey dot (to turn it blue) you can override the setting for that control. Once you add a blue dot you will have that setting for everything above. It’s always left to right.
Watch the video below to see how this works in practice.
Components are the raw building blocks for page design in Elements. Let's take a look at the different types of Components available.
Elements ships with a comprehensive range of Components that allow you to put together an entire website. They include everything from Headings, Images, Galleries, and layout tools, like Grid and Flex.
If you know a bit of HTML you can create your own custom Components for use in your projects. These can be anything from a simple html snippet to a fully blown Component using the Elements API, with custom UI controls. Learn more about Custom Components.
Custom Components can only be shared via projects, the code is open and visible to anyone with that project. They are perfect for creating bespoke solutions for your project(s), or getting familiar with the Elements API before you migrate to building components like those built into Elements.
Third-party developers can use the Elements API to create full-blown Components that are on a par with the built-in Components — Yes, we use exactly the same API that is available to all users.
Third-party components will be distributed via the RapidWeaver Elements Distribution Platform as Element Packs (.elementspack). These packs are shipped as highly optimized, encrypted bundles. The code cannot be modified or edited by users or third parties (exactly like the built-in Components).
Automatic colour switching based on the users system settings
With dark mode now a prominent feature in many operating systems, it’s increasingly common to create a dark version of your website alongside the default design.
Elements supports automatic switching between light and dark mode. This approach enables automatic theme switching based on the user’s system (or browser) settings, ensuring websites adapt seamlessly to both light and dark modes.
For Light and Dark mode to work seamlessly we recommend basing your websites on the following three colours, Brand, Surface, and Text.
For Elements like Buttons, Colour Fill on Icons, Dividers, we recommend using Brand Colour from the Theme Studio.
For Background Colours we recommend using the Surface colour from the Theme Studio.
For Text Colours we recommend using the Text colour from the Theme Studio.
Every colour in Elements supports Dark and Light Mode, this means you can change the colour of text, backgrounds, buttons, borders, and more, all based on the users system settings.
By default when you set a colour it's set for Light Mode. To set an alternative colour for Dark mode, you need to press the Dark/Light Mode toggle button at the top of the editor.
If you don't want dark mode on your website, you can switch this off in the Project Settings. Please note, this will hide the UI option to toggle between dark and light mode, and only preveiw and export the light mode versuion of you website.
The following video will show you how to set Colours for Dark and Light mode in Elements. The video was recorded with a development version of Elements so the feature(s) available now may differ slightly to those in the video.
A fundamental user interface element in web design
Buttons are fundamental user interface elements in web design that enable users to interact with your website. They serve as clickable elements that trigger actions, such as navigating to a new page, or triggering a specific function, like showing a modal window.
Buttons provide a clear call to action.
Create visual separation between sections of your website
The Divider component in Elements is a simple yet effective way to create visual separation between sections of your website. It helps to organize content, enhance readability, and improve the overall flow of your design.
These advanced components ship with every copy of Elements.
Website resources include anything from image files to PDFs and folders. All of your resources can be managed right inside RapidWeaver Elements.
Open the resources list in the left-hand sidebar, and drag and drop in files (and folders), from the Finder. The structure and naming of your files will be the same in-app and when it's exported to the finder.
Elements supports adding all files types (including Folders) to the resources browser. However, some file types have extra support.
Images - png, svg, jpg, etc…
YouTube URL - Single video's and playlists
Vimeo URL - Single video's and playlists
Right-click on a file and select "show Info" to edit the meta data. The file inspector is a floating window and can be left open while you browse through files in the Resources area.
Filename (All file types)
Caption (images)
Author (images)
The Container Element serves as a wrapper or holder for other elements. It is commonly used to group and organise related content. The Container Element can be used to apply spacing or create space around elements.
The Margin allows you to set the margin on all sides of the container. You can adjust the left and right margins to set the spacing as follows:
Align Center, set the let and right margin to "Auto"
Align Left, set the left and right margin to "0"
Align Right, set the left margin to "0" and the right margin to "auto"
Apply padding independently to each side of the element.
Visually show and hide the element. Please note the element will still be visible in the html, but not visible on the page.
Add custom (and Tailwind) classes directly to this element. For example, we can apply a blur to everything within the container by writing blur-sm
into the CSS Classes field. See the Tailwind blur docs for available classes.
You can browse all the available Tailwind classes over in the Tailwind CSS documentation.
Clip content that overflows this Element.
Powerful grid based layout system
The Grid Element is a powerful layout system based on CSS Grid that allows you to create complex two-dimensional grid-based layouts for web pages. It provides a precise way to position and align elements within a grid container, making it easier to design responsive and flexible layouts.
With the Grid Element, you can define rows and columns, control their sizes, and place items anywhere within the grid. You can also set the grid-gap for adding spacing between grid cells, you can even create nested grids.
When you first drag a Grid onto your page, you might notice that the columns aren’t immediately visible. That’s because the grid requires content to define its layout. To get started, drag and drop a Container into the grid. The container will occupy the number of columns you’ve set for the grid. As you add more containers, an insertion point will appear to the left or right of the existing container, guiding you on where the new content will fit. Drop the container, and you’ll see the grid automatically split into two columns. Repeat this process to populate the grid with as many columns as you’ve set up.
Once your containers are in the grid, you can adjust their behavior by changing their type to Grid Item. This setting allows you to control each item’s width. For example:
• If you’ve set your grid to 4 columns, you might set each grid item’s width to 1, which will evenly distribute the space across 4 columns.
• Alternatively, you can define the grid as having 12 columns and assign each grid item a width of 3. This approach is functionally identical but provides more granular control. While both methods work, many find the simpler “4 columns, 1 width per item” method easier to manage.
Grids can feel a bit tricky at first, but once you get the hang of it, they’re incredibly flexible and powerful.
The Flex Element is based on the Flexbox CSS module that provides a flexible way to distribute space among items within a container. It is designed for one-dimensional layouts, such as arranging elements in a single row or column. With Flexbox, you can easily create responsive and dynamic layouts that adapt to different screen sizes and orientations.
Manage the structure of your website.
Easily manage the structure of your website. Create pages and folders and drag to re-arrange them just like you would in the Finder.
To create a new page, press Command-N or use the "+" symbol to the right of the Pages title.
Folders are a great way to organize site content when you don't need a top level page. Folders can contain any number of pages or additional folders.
To Create a folder, right-click in the Pages area and select "New Folder" from the menu.
Send form data via email or webhooks
The Form Component is a powerful form solution allowing you to send form submissions via your own email server or via a webhook.
The Form Component in Elements requires PHP 8.x or newer.
To recive emails via the Form Component you will need to enter your Email server details. Here’s a breakdown of what each field means and what you’ll need to configure to make it work properly:
Host
Email host address. e.g. mail.yourdomain.com
Port
The port number the email server uses for sending messages. - 587: For TLS encryption (most common) - 465: For SSL encryption. - 25: For non-encrypted emails (not recommended).
Encryption
Choose the encryption method required by your email provider. None, TLS, SSL
Username
The email address or username for the SMTP account you’re using to send emails. e.g. admin@yourdomain.com.
Password
The password for your SMTP account.
A webhook allows your form submissions to be sent directly to another service, like a database, CRM, or automation tool without needing to check emails or manually process the data. By sending form data to a webhook, you can trigger workflows in Zapier, Make, or Pipedream, making it easy to do the following (and so much more):
• Add a new lead to Airtable or Google Sheets
• Send a follow-up email through Mailchimp or ConvertKit
• Notify your team in Slack or Discord
• Create support tickets in Zendesk or Trello
There's really no limit to what you can do with the new webhooks feature. Whether you’re building a customer support system, a lead capture form, or a dynamic survey that feeds into a database, webhooks unlock powerful automation and customization that email simply can’t match.
Webhook submissions require a server environment, so once you publish the page to a server—either a remote server or a local one—you should find the submission works as expected.
If you want to test everything locally, you’ll need to set up a local web server on your Mac. We recommend ServBay for this.
Here’s a quick guide:
Install ServBay
Publish your Elements site to a local folder
In ServBay, create a new site and point the root directory to your published folder
Open the site in your browser through ServBay for full local testing—including Forms and webhooks
Add Images to your webpage
The Image component in Elements allows you to easily add and display images (in JPG or PNG formats) on your website. This versatile component supports a wide range of customization options, making it ideal for showcasing visuals in a clean, responsive, and accessible way.
JPG
PNG
The Image Component does not support SVG's, instead you should use the SVG Component.
A simple Lightbox feature can be enabled under the Lightbox setting in the Image Component.
Basic image protection can be applied using the Image Protection option under the Image properties.
It’s a common request: protect images on a website from being downloaded or copied. While blocking right-click can deter casual users, it’s important to understand that it doesn’t truly secure your images. Web browsers inherently download all page assets—including images—so they can display them. This means anyone with basic knowledge of developer tools or access to the browser’s cache can still retrieve your images.
Instead of relying on “image protection,” consider watermarking your images or ensuring they’re resized and optimized for the web. This approach makes them less valuable for unauthorized use while still serving their purpose on your site.
Details Coming soon.
Perfect for headings and titles.
The Text Component is an ideal choice for a wide range of text elements, from headings and taglines to smaller text areas. It provides flexibility for styling text to suit various design needs, making it perfect for creating visually impactful headings, standout taglines, and highlighted phrases.
With the Text Component, you can easily create bold, eye-catching headings enhanced by background images, gradients, or color overlays, adding depth and style to your design. The component’s versatility means it works seamlessly in both minimal and complex layouts, allowing you to design text elements that grab attention without overpowering your overall look.
Whether you’re looking to create subtle text accents or prominent, styled headers, the Text Component has you covered.
The following video will teach you the basics on using the Text Component.
The following video will show you how to make your text resposive.
This is an advaced feature that allows you to apply Tailwind CSS Classes to any of your text in the Text Component.
Below we have included a few sample classes that were featured int he video. To learn more you can browse the Tailwind CSS Docs.
Under the General settings in the inspector you'll find options to style the entire block of text.
The Tag helps create a semantic structure so search engines understand the hierarchy and relationship of your content. For example, the main heading on the page choose would be "Heading 1", your body text would be set "Paragraph".
Align your text, left, center and right. You may need to also set the aligment of the parent item to get the desired alignment.
Choose a font family, these are managed by the Theme Studio.
Choose a text size, these are managed by the Theme Studio.
Text styles include size, line height, letter spacing, and weight. You can override some of these settings inline by choosing the "Override" option.
Set the weight of your text.
Set the spacing of the text.
Set the line height of the text.
Make the text italic.
Choose a shadow for yoru text, these are managed by the Theme Studio.
Choose a shadow for yoru text, these are managed by the Theme Studio.
Choose from None, Uppercase, Lowercase, and Capitalise.
Choose from None, Underline, Overline, and Line Through.
Choose between colour, background image, and gradient for your text. Each different type of style has a set of sub options.
Color: Choose a solid colour from the theme studio, also supports opacity.
Image: Choose an image, along with positioning, sizing, and repeat.
Gradient: Supports up to 3 colours, set position and oapcity of each colour independently.
Default and HOver
Built for long form content
Content coming soon.
A fundamental user interface element in web design.
Add Scalable Vector Graphics to your website
SVGs (Scalable Vector Graphics) have become a go-to choice for web design because they offer incredible flexibility and quality. Unlike traditional image formats like JPEG or PNG, SVGs are vector-based, meaning they’re made up of lines and shapes rather than pixels. This makes them infinitely scalable without losing quality, so they look sharp on any screen size or resolution, from small mobile devices to large desktop monitors.
1. Crisp at Any Size: SVGs maintain perfect clarity when resized, ensuring icons, logos, and illustrations always appear sharp and professional.
2. Small File Size: SVGs are typically smaller than high-resolution images, which helps websites load faster. Their code-based structure allows them to be easily optimized, minimizing file size and improving performance.
3. Easy to Style: SVGs can be styled directly with CSS, making them easy to fit in with the colours and style of your website.
To add an SVG, drop it from the Finder (or Resources) area into the Dropwell.
To set a fill colour on an SVG it needs to be setup correctly to support fill colours.
None
No colour or classes will be applied to the SVG.
Static
Set a single fill colour on the SVG.
Hover
Set a Start and End colour for the SVG. The Hover colour is displayed when the mouse cursor is over the SVG.
To set a stroke colour on an SVG it needs to be setup correctly to support stroke colours.
None
No colour or classes will be applied to the SVG.
Static
Set a single fill colour on the SVG.
Hover
Set a Start and End colour for the SVG. The Hover colour is displayed when the mouse cursor is over the SVG.
Width
Set a stroke width for the SVG in pixels.
SVG Cleanup with Sketch App on the Elements Forum provides a good overview and discussion on the best way to get your SVG's ready for use in Elements.
You can download Sketch App here, and the SVGO plugin here.
Getting SVG's to display correctly is a bit of a dark art, but with a bit of tinkering you'll be able to modify them to work and look great on the web and in Elements.
A: SVG images don’t always respond as expected to CSS styles for a few reasons, and it’s a common stumbling block. Here’s a quick rundown on why this happens and how to get more reliable control over your SVGs in RapidWeaver Elements…
SVG elements have their own styling properties, like fill and stroke, which can sometimes conflict with CSS styles. If these attributes are set within the SVG code itself, they can override Colours and Styles from Elements.
For scalable, theme-compatible SVGs, you can set the fill and stroke attributes to currentColor within the SVG file. This approach allows Elements to set SVG color for the stroke or Fill.
Set fill="currentColor"
within your SVGs if you want Elements to set the colour of the stroke or fill. Depending on how the SVG is coded, this might not work, if that is the case, you should try removing fill="currentColor"
from yoru SVG.
A: Use the Sizing settings in the component inspector, by default this is set to use a Theme Studio value. Custom CSS values can also be used to size the SVG.
A: Remove the height and width values in the SVG file, see screenshot below for an example.
A: Tabler Icons has over 5,650 free SVG icons, they are all perfect for use on your Elements websites. Download any of the icons from there and remove the width and height code (as above), and they are ready to use in your project. The icons from Tabler are setup to use the stroke attribute. See the video below for a quick overview of how this works in practice. Also, see our list above.
All of the following icon libraries work well Elements, if you require them to be resiable in Elements you'll need to remove the Height and Width values from the code before importing.
https://tabler.io/icons, over 5,650 free SVG icons.
https://feathericons.com, simply beautiful open source icons
https://phosphoricons.com, outline, filled, duotone and more.
https://heroicons.com, hand-crafted SVG icons, by the makers of Tailwind CSS (you'll need to the code into a file and save it with a .svg extension before adding to Elements).
https://svgl.app, a beautiful library of company SVG logos.
Practical SVG by Chris Coyier
Learn once, use everywhere.
While each component has a set of unique controls, we've designed them so many of the components also share a set of common controls.
For beginners or users new to Elements, shared or common controls reduce the learning curve significantly. Instead of needing to master a different set of controls for each component, they can focus on understanding a core set of common settings that apply across the board.
By learning these shared controls, you only need to understand how to use a specific set of controls once, which can then be applied across various components. With common controls across multiple components, making changes becomes faster. You'll be able adjust the same properties (like padding, margin, colors, effects, or typography) across different components without having to search for or relearn where those settings are.
Add a video to your website
The Video Element is a simple way to add a single video to your website.
You can add YouTube or Vimeo videos by dragging and dropping the url from your web browser to the the Resources area in RapidWeaver Elements.
The video component supports the following file types:
YouTube
Vimeo
.mp4
The Video component has a dropzone in the center of it to allow for custom play buttons, text, graphics, and more.
Resource: Drop a video file or video url from the Resources Browser into the dropwell.
Autoplay
Set when (or if) the video should play automatically. The following options are available: Immediately, When in Viewport, or Never.
Muted
Set the video to muted by default.
Controls
Hide or show the video player controls. This setting only works with .mp4 files.
Loop
Specify if the video should loop. This setting only works with .mp4 files.
Set a thumbnail image to be displayed before the video is played.
Mode
Supports the ability to specify an Image for Light & Dark Mode.
Image
Set an image to be displayed as the thumbnail before the video loads. This should be a jpg file.
Description
Sets an Alt tag on the image. Used for SEO and Accessibility.
Overlay
Overlay a colour onto the image, perfect for making dimming the image and makeing the play button "pop".
Automatically build and display your website navigation
Details comign soon.
The “Sticky” option under Layout > Position applies the CSS property position: sticky
. However, it might not behave as intuitively as expected.
Simply setting Position to “Sticky” won’t automatically make your navbar stick to the top of the page. Here’s how to achieve that effect:
Set Position to “Sticky”
Choose Type as “Individual”
Set Top to 0
Set Position to “Fixed”
Choose Type as “Individual”
Set Top to 0
Understanding the Difference: Sticky vs. Fixed
• Sticky Positioning: The element with position: sticky will stay in place only after it has been scrolled to a specific point (e.g., Top set to 0). It combines characteristics of relative and fixed positioning, meaning it will move along with the page until it reaches the set position, where it then “sticks.” However, it requires a defined space around it to work effectively, so if the element’s container is too small or constrained, sticky positioning may not work as expected.
• Fixed Positioning: The element with position: fixed is completely removed from the document flow and will stay at a set position on the screen, regardless of scrolling. It is always visible at the specified position (e.g., top of the page) and doesn’t depend on other elements or its container size. This option is often more predictable for elements like a navbar, as it maintains its position consistently.
In most cases, “Fixed” will likely give you the desired result for a navbar that remains at the top of the page. However, feel free to experiment with both options to see which best suits your layout.
Animate components when they enters the viewport
The “Reveal” animation component in Elements allows you to add visually engaging animations to your website. As elements come into view, they can “reveal” themselves with smooth, dynamic effects.
As a minimum you can add data-reveal
to any DOM element to apply a default animation as the element enters the viewport. If you would like to customise the animation, the following data attributes are available.
Elements allows you to define when the animation should be triggered. You can use any of these values when setting the data-reveal-play
attribute.
We offer five types of animations to enhance your user interface:
• Fade
• Slide
• Zoom
• Light Speed
• Rotate
Each animation supports all four directions (Up, Down, Left, Right) and can be triggered for both “In” and “Out” events.
Our animation naming convention is straightforward, following this structure:
{animationName}{Direction}{Event}
For example:
• fadeUpIn
for a fade-in effect moving upwards.
• zoomLeftOut
for a zoom-out effect moving to the left.
This flexible system ensures that you can seamlessly integrate animations tailored to your design needs.
By using the data-reveal-*
attributes in your , you can take advantage of the Animation framework built into Elements.
Animations in can be set independently on enter and exit, as shown in the sample code.
Link
Layout
Sizing
Spacing
Transitions
Effects
Filters
Transforms
Borders
Advanced
data-reveal
String | null
Does not require a value.
data-reveal-scrub
Boolean
Enable scrubbing.
data-reveal-animation
String
data-reveal-exit-animation
String
data-reveal-distance
CSS Value
200px, 75%, 33vh.
data-reveal-degrees
Number
90, -45, 312.
data-reveal-play
String
data-reveal-start
String
See GSAP docs
data-reveal-end
String
See GSAP docs
data-reveal-easing
String
See GSAP docs
data-reveal-duration
Number
In seconds
data-reveal-delay
Number
In seconds
data-reveal-id
String
Optional ID, used to identify debug markers.
data-reveal-debug
Boolean
Enables debug markers
Once on enter
enter-once
One time animation when first entering the viewport
Always on enter
enter-always
Plays every time the elements enters the viewport
Enter and exit
enter-exit
Plays every time the element enters and exits the viewport
fadeUpIn
Fade Up and In
fadeUpOut
Fade Up and Out
fadeDownIn
...
fadeDownOut
fadeLeftIn
fadeLeftOut
fadeRightIn
fadeRightOut
slideUpIn
slideUpOut
slideDownIn
slideDownOut
slideLeftIn
slideLeftOut
slideRightIn
slideRightOut
zoomUpIn
zoomUpOut
zoomDownIn
zoomDownOut
zoomRightIn
zoomRightOut
zoomLeftIn
zoomLeftOut
lightSpeedLeftIn
lightSpeedLeftOut
lightSpeedRightIn
lightSpeedRightOut
lightSpeedUpIn
lightSpeedUpOut
lightSpeedDownIn
lightSpeedDownOut
rotateUpIn
rotateDownIn
rotateRightIn
rotateLeftIn
rotateUpOut
rotateDownOut
rotateRightOut
rotateLeftOut
Set advanced properties for Position, Z-index, Visibility, and more.
The Layout controls help you manage the overall layout and positioning of elements within a webpage. These controls include controls for handling display properties, positioning, z-index, overflow, visibility, and more.
General layout settings for Position, Z-index, and Inset.
The Position controls how an element is placed in the document and how it interacts with its surrounding elements. These utilities correspond to standard CSS positioning properties like static, relative, absolute, fixed, and sticky. See Tailwind CSS Position for more details.
None
No position properties are set on the container.
Static
The element is positioned according to the normal document flow.
Relative
The element is positioned relative to its normal position in the document. You can adjust its position using top, right, bottom, or left properties. The space it originally occupied remains reserved.
Absolute
The element is positioned relative to its nearest positioned ancestor (an ancestor that has relative, absolute, or fixed positioning). If no such ancestor exists, the element is positioned relative to the initial containing block (usually the viewport). It is removed from the normal document flow, meaning it does not affect the layout of other elements.
Fixed
The element is positioned relative to the viewport, meaning it stays in the same position even when the page is scrolled. Like absolute, it is removed from the document flow and does not affect the positioning of other elements.
Sticky
The element is positioned relative until a scroll point is reached, after which it becomes “fixed” and sticks to that position until the scrolling container is out of view. It’s a mix of relative and fixed positioning. You must specify at least one of the top, right, bottom, or left properties for it to stick (e.g. Type > Individual > Top = 5px)
The z-index controls the stack order of elements on the page and is an important CSS property in web design. When multiple elements overlap, the z-index determines which element appears on top of the others. See Tailwind CSS Z-Index for more details.
None
No Z-Index properties are set on the container.
Auto
Lets the browser automatically determine the Z-index of the container.
Custom
Set the Z-index manual for the container,can be a positive or negatiev value (e.g. -50, or 50).
The Inset property is used to control the positioning of an element relative to its nearest positioned ancestor. See Tailwind CSS Top / Right / Bottom / Left for more details.
None
No uniform or individual spacing properties are set on the container.
Uniform
Uniform combines the top, right, bottom, and left offset properties into a single option, allowing you to quickly set all four sides at once.
Individual
Individual set the top, right, bottom, and left offset properties.
Advanced layout settings for Overflow, Isolation, and Visibility.
Controls how an element handles content that is too large for the container. See Tailwind CSS Overflow for more details.
None
No overflow properties are set on the container.
Visible
Content that overflows the container will still be visible outside of its bounds.
Hidden
Content that exceeds the dimensions of the container is completely hidden (no scrollbars are displayed, and you can’t scroll to see the overflowed content).
Scroll
A scrollbar is always shown, regardless of whether the content overflows the container or not. The user can scroll to view the overflowing content.
Auto
Scrollbars will automatically appear only if the content overflows the container.
In complex layouts, different elements may interact with each other in ways that are not always predictable, especially when dealing with z-index. Using isolate helps create a new stacking context for an element, effectively “isolating” it from the outside world, preventing unexpected overlaps or stacking behavior. See Tailwind CSS Isolation for more details.
None
No Isolation properties are set on the container.
Visible
Forces an element to create a new stacking context. This isolates the element’s stacking order from the rest of the page, meaning its child elements won’t interfere with other elements on the page, even if they have z-index values.
Auto
This is the default setting that lets the browser determine the stacking context without forcing isolation.
Controls the visibility of an element on the page. See Tailwind CSS Visibility for more details. Please note: The Visibility control was updated Janury 2025, so the video is slightly out of date.
Auto
This is the default setting that lets the browser determine the visibility of an element.
Visible
When set to visible, the element is fully visible on the page and takes up space in the layout as usual.
Invisible
When set to invisible, the element is not visible on the page and takes up space in the layout as usual.
Link to a page, resource or website.
The link property allows you to link to a page, resource or extrenal website. Elements will keep track and update all internally linked pages and resources.
You can envoke the link panel on most components and inline text areas. Add a link click the "Choose Link…" button in the inspector. To clear a link click the "x" icon to the right hand side of the link button.
URL
Link to an external website, a mailto link will automatically be created if an email address is entered.
Page
Link to a page within your project.
Anchor
Link to an Anchor on the page. Anchor ID's can be set in the Advanced settings on all built-in Components.
Resource
Link to a resource within your project.
Element websites are configured to smooth scroll when navigating to an anchor. Smooth scroll can be disabled by removing the class="scroll-smooth" on the html tag in the site Template code.
Custom attributes in an link (anchor tag) provide additional information about how the link behaves, where it directs, and how it interacts with other elements or the browser. Here's a selection of example custom attributes.
title
Go to Example Website
Provides additional information about the link, usually displayed as a tooltip when the user hovers over the link.
rel
noreferrer
Ensures that no referrer information (the URL of the current page) is sent to the destination.
rel
nofollow
Tells search engines not to follow this link for SEO purposes.
type
application/pdf
Specifies the MIME type of the linked resource. This is typically used when linking to downloadable files or specific content types. This example is for a pdf document.
You first need to add an ID to the component that will serve as your anchor. The ID can be found in the Advanced section in the settings for the selected component.
Then where you want to create your link in the text. Select the text, which will display the inline text
Click the LINK button in the inline text editor to open the link dialog.
If your anchor is on the same page, choose the page from the dropdown next to the link field.
This will display all available anchors in the Anchor popup.
Select the desired anchor, and you're done.
Apply box shadows rollovers and more.
Easily enhance the visual appeal of elements in your website by applying effects like box shadow and opacity. These effects can help create depth, highlight key elements, and adjust the transparency of components, giving your site a modern, polished look.
Specify if the component has effects enabled or disabled. The Hover effect works in conjuction with Transitions.
None
No effect classes will be applied to the component.
Static
Enable effects.
Hover
Enable Start and End state hover effects.
If you set the Type
to Hover, you can specify which element should be hovered over to trigger the transition.
Self
this element.
Parent
the direct parent element.
Container
any parent Container element.
Grid
any parent Grid element.
Flex
any parent Flex element.
Custom ID
the parent with the specified custom ID*
When using a Custom ID to trigger a transition, make sure the parent element has a class name in the format group/{customID}
.
If the parent element is a Container, Grid, or Flex component, you can simply enter the custom ID into the Advanced → ID field. Elements will automatically apply the correct class name for you.
However, if you’re using a different component—or have built a custom one—you’ll need to manually ensure the appropriate class name (group/{customID}
) is applied to that element.
Note: You do not need to include the group/ prefix when entering your ID. Just enter the raw ID in the ID field, and Elements will handle the rest.
Apply a box shadow to the Component.
Set an opacity for the component.
Add Margin and Padding to Components.
The Spacing controls allow you to add Margin and Padding to an object. By default this control is disabled, this is to ensure the pading and margin classes are not applied to the object.
To set Padding and Margin you need to switch the "Enable" toggle to on.
The "Mask & Paintbrush" icon will toggle the control between selecting from a Theme Preset and setting an arbitrary value. To change the arbitrary value by 5px increments, click and drag the mouse up and down. To change the value by increments of 1px hold down the shift
key while dragging.
To link the opposite value, click the dashed line so the highlight is set to blue. This can be done independently for vertical and horizontal values.
The Margin property controls the space around an element, outside of its border. It creates space between the element and its neighboring elements.
Margins can be set for all four sides of an element—top, right, bottom, and left—or individually for each side.
The Padding property controls the space inside an element, between its content and the element’s border. Unlike margin, which affects the space outside an element, padding pushes the content inward, creating internal spacing within the element itself.
Padding can be set for all four sides of an element—top, right, bottom, and left—or individually for each side.
Adjust animation curve, duration, and delay for transitions
The Transitions settings apply to the Filter, Effect, and Transform sections on the same Component. Transition settings contol the the timing, animation curve and delay when transitioning (or animating) an object between two states.
The Apply to dropdown allows you to specify the values of a component the transition will apply to. In most cases you'll want this set to "All".
All - Apply a transition to all values.
None - Don't apply a transtion (similar to seeing the duration value to 0).
Most Common - Applies transitions to color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter.
Colours - Only apply transition to colours.
Opacity - Only apply transition to the opacity.
Shadows - Only apply transition to the shadows.
Transforms - Only apply transition to the Transform values.
In CSS animations, the terms Linear, Ease In, Ease Out, and Ease-in-out refer to different types of timing functions that control the speed of an animation over time.
Custom - See Custom Timing Function (below)
Linear - The animation progresses at a constant speed from start to finish.
Ease In - The animation starts slowly and then speeds up as it progresses.
Ease Out - The animation starts quickly and then slows down as it finishes.
Ease-in-out - The animation starts slowly, speeds up, and then slows down again before finishing.
The x1, y1, x2, and y2 values used to create custom timing functions using a cubic-bezier() curve for animations.
The cubic-bezier curve essentially determines the rate of change over time of the animation. It allows you to create custom easing effects that can behave in ways that predefined ones like linear, ease-in, ease-out, or ease-in-out cannot.
x1, x2: Control the horizontal axis, which represents time. These values must be between 0 and 1, where 0 is the start of the animation and 1 is the end.
y1, y2: Control the vertical axis, which represents the progress of the animation (i.e., how far along the element is in its transformation or movement). These values can go below 0 or above 1 to create exaggerated effects.
The following animation starts very quickly, with almost no easing at the beginning, very fast through the middle section and ends abruptly. These values are the default values for the custom timing control.
The following animation accelerates towards the end point, overshoots the final position, and comes back to settle into its final state.
There are tools online like Cubic-Bezier.com that let you visually manipulate and experiment with the cubic-bezier function to create custom easing effects, where you can adjust the control points and immediately see the animation effect on a graph.
Set the duration for the transition animation in milliseconds, for example setting a value of 500, would result in the transition taking 0.5 seconds to complete. Setting the value to 1,000 would make the transition taking 1 second to complete.
Set the delay of the transition start in milliseconds, for example setting a value of 500, would result in a delay of 0.5 seconds before the animation will start. Setting the value to 1,000 would set a delay of 1 second before the animation starts.
Set the Width and Height for elements.
The sizing option provides options for setting fixed widths, percentage-based widths, viewport-based widths, and even fractional widths to ensure flexibility and precision in responsive design.
The width setting offers a comprehensive range of options that make it easy to control the width of elements in your design.
Auto
No position properties are set on the element, the parent element and browser handles the width of the element.
Full
The element will take up the full width of the parent element.
Screen
The element will take up the full width of the viewport, e.g. 100vw (full viewport width).
Breakpoint
The element width will be to set to the Breakpoint classes setup in the Theme Studio.
Theme Spacing
The height setting offers a comprehensive range of options that make it easy to control the height of elements in your design.
Auto
No position properties are set on the element, the parent element and browser handles the height of the element.
Full
The element will take up the full height of the parent element.
Screen
The element will take up the full hight of the viewport, e.g. 100vh (full viewport height).
Theme Spacing
In Elements the min-width and max-width settings provide control over the minimum and maximum width of elements, allowing you to set constraints on how wide an element can grow or shrink. These settings are especially useful for responsive design, as they help maintain readability and layout consistency across different screen sizes.
1. Content Readability: Setting maximum widths prevents text from stretching too wide, which enhances readability, especially on larger screens.
2. Responsive Design: Min and max-widths help maintain an adaptable layout by controlling how elements respond to different screen sizes.
3. Layout Constraints: Min-widths prevent elements from collapsing too small, while max-widths keep elements from overflowing their containers, ensuring a balanced and visually consistent design.
Use min-width and max-width settings when you need control over element sizes to ensure responsive, readable, and user-friendly layouts across various screen sizes.
A lot of Components support a “custom sizing” option for you to specify the exact size of an element, this can be things like width, height, and placement.
When adding a value into the custom size box, it’s useful to remember that anything native css supports, Elements supports! So values like vh, px, rem, %, and css maths 2 should all work as expected.
Here's some examples:
250px - Make the width (or hight) 250px wide.
calc(100vw-20px) - 100% viewport width - 20px.
100vw - 100% of the viewport width.
80vh - 80% of the viewport height.
Choose from the pre-defined size classes set in the Theme Studio. You can also override the pre-defined classes and use .
Choose from the pre-defined size classes set in the Theme Studio. You can also override the pre-defined classes and use .
Apply effects like rotate, scale, skew, and more.
Transforms in Elements allow you to manipulate the position, size, and orientation of components all without writing a line of code. Transforms are a powerful way to apply effects like rotating, scaling, translating (moving), and skewing elements, making it easy to add dynamic and interactive visual effects to your design.
You can also use transforms to create hover or focus effects that make elements feel more interactive and responsive.
Specify if the component has transforms enabled or disabled. The Hover effect works in conjuction with Transitions.
None
No effect classes will be applied to the component.
Static
Enable effects.
Hover
Enable Start and End state hover effects.
The component must be nested somewhere inside a component that has the custom ID applied, and the custom id class needs to be formatted with the group modifier, like so: group/parent-component-id
.
Origin - Set the origin of the transform.
Scale - Changes the size of an element by percent.
Rotate - Rotates an element by a specified degree, supports positive and negative values.
Translate - Moves an element along the X or Y axis, supports positive and negative values.
Skew - Skews an element along the X or Y axis, supports positive and negative values.
A quick and flexible way to apply common visual effects
Filters allow you to apply various visual effects to elements, such as blurring, adjusting brightness, or adding drop shadows. These filters are applied via the filter settings on most elements and enable quick visual enhancements.
Specify if the component has effects enabled or disabled. The Hover effect works in conjuction with Transitions.
None
No effect classes will be applied to the component.
Static
Enable effects.
Hover
Enable Start and End state hover effects.
Blur - Applies a blur to the contents of the object. Vvalue is set in pixels.
Brightness - Darken or lighten the image, value is set in percent, 100 is the default value.
Sturate - Asjust the colour saturation, 0 is greyscale, 100 is the default.
Drop Shadow - Apply a drop shadow from the theme studio.
Blur - Applies a blur effect to the content behind the element, rather than the element itself. It creates a frosted glass-like effect, which is commonly used in modern web design to maintain focus on the content in the foreground while still giving a glimpse of what’s behind. To see this effect, ensure your component has a completely transparent background or semi-transparent background colour.
In Elements, borders are easy to add, customize, and control, allowing you to create clean and consistent boundaries around components with minimal effort. Elements provides a range of options for setting border width, border color, border style, and even border radius (for rounded corners). This flexibility makes it simple to define borders that suit your design, from subtle outlines to bold accents.
Specify if the component has effects enabled or disabled. The Hover effect works in conjuction with Transitions.
None
No effect classes will be applied to the component.
Static
Enable effects.
Hover
Enable Start and End state hover effects.
The Style control allows you to choose between three distict border styles, solid, dashed, and dotted.
Solid
No effect classes will be applied to the component.
Dashed
Enable effects.
Dotted
Enable Start and End state hover effects.
Define a colour and oppacity for the border. Colour swatches are defined in the Theme Studio.
The Width property controls the thickness of the border. Width can be set for all four sides of an element—top, right, bottom, and left—or individually for each side. A custom pixel value can also be set.
The Radius property controls the roundness of the border. Radius can be set for all four sides of an element—top, right, bottom, and left—or individually for each side. A custom pixel value can also be set.
This text area is useful for adding extra Tailwind CSS Classes.
This text field is useful for applying a custom name to a component. The ID name of the component will appear in the Link window enabling you to easily create Anchors, watch the video below to learn more about how to use this feature.
Extend RapidWeaver by creating your very own custom Components
If you know a bit of HTML you can create your own custom Components for use in your projects. These can be anything from a simple html snippet to a fully blown Component with custom UI controls. The possibilities of what you can create are endless!
No extrenal code editor is required, you can build everything inside of RapidWeaver Elements.
Custom Components are stored in the project they were created in.
Custom Components have full access to the Elements Language (although they cannot include extra files like third-party component can).
To ensure compatibility with Elements you should use Tailwind CSS classes when writting your Template HTML.
Custom Components can easily be converted into an encrpyted third-party component that can be distributed and sold via the Elements platform.
Creating a Custom Component in Elements is the easiest and fastest way to get started with exploring the Elements API. Custom Components can eaily be migrated to distributable Element Packs at a later date.
Using the following tags enable editable areas with the page. No setup of configuration in the properties file is required.
Replace any text in the html template to make it editable within the page.
Here's a real world example of using the code to make the a heading editable.
You can also set a default value for an editable text areas, so that when your custom component is dropped into a page it will be populated with a defulat value. In the example below, it would be "Hello World!".
A dropzones is an area within an HTML template where existing component can be added.
Can also be written like this.
You can also add a title for the Dropzone, this will be shown in the Node Browser.
Using the above tags inside of Custom Components only scratch the surface of what's possible, you can also use the Elements API inside of your Custom Components.
If you're a developer you can take things even further by creating distributable (and sellable) Element Packs for RapidWeaver Elements. You can learn more about Element Packs in the Elements Pack section of this manual.
The following videos will show you how to create Custom Elements. The following videos were recorded with a development version of Elements so the feature(s) available now may differ slightly to those in the video. View the Tutorial playlist on YouTube for more videos.
Start quickly, control deeply.
Templates are groups of Components that have been put togther to create a design or layout. Once a template is dropepd into your page you can customise how you like, and it is no longer linked to the original template.
You can create reusable templates, or global templates.
Global Templates give you the power to create reusable (and customisable) groups of components to maintain a consistent design language across your entire site.
You can reuse global template blocks across your site so you need only need update the content in one place and have it automagically mirrored in all other instances of that global. For example, this can be very useful for global header and footer sections.
You can take Globals even further by overriding content and design aspects on an individual instance. For example you might have a banner that you want to use on every page of your site and you'd like the design to be consistant. You can use the override feature to customise the text and background image on each instance. You can even override the design settings on certain instances.
Once you learn how to use the power of globals you'll wonder how you ever built wesbites without them.
There are a number of ways to turn a group of Elements into a Global. Right-click an element in the Editor or Node Browser and select "Convert to Global".
To unlink a group of Elements on a page, right-click on the Global in the Node Browser and choose "Unlink from Global".
When working with Elements, you can nest different Globals within each other to create complex structures. However, it's important to note that you cannot nest the same Global within itself. This restriction is in place to prevent potential issues such as infinite loops, system errors, or a rip in the time-space continuum.
Manage the overall settings for your Website, this includes things like site title, logo, code, and publishing destinations.
Site Settings can be accessed by pressing the cog icon in the toolbar.
Fully Customizable Site Template
The site template give you the ability to modify the underlying template code for your entire site. It's perfect for placing scripts, such as Google Analytics anywhere within the page structure.
The site template is used on every page of your website. If you need to insert a script just on specific pages, you should use the page level code areas instead.
The Site Template has access to all the page level properties, such as {{page.title}}
and {{page.description}}
. A full list can be found in the Available Data section under Page Properties in this manual.
To reference a file in you Resources folder you can use the following page tag to get the correct path to the resources folder:{{page.resourcesPath}}.
The following example shows how you might link to a "store.js" file that's in a "scripts" folder in the Resources area.
The following is an example of the default site Template. Please note the template is only used during preview and export. It is not used in Edit mode.
The following videos will show you how to use the Template feature in Elements. The videos were recorded with a development version of Elements so the feature(s) available now may differ slightly to those in the video.
Export locally or publish online
When you’re ready to publish your website, you'll need to configure the. Elements can publish to the following locations and services:
Local (to your Mac)
FTP
SFTP / FTPS
Amazon S3
Publishing your site is an exciting moment: you’ll be able to enter a website address into Safari and see the fruits of your work.
Depending on who your hosting provider is, you may need to tweak a few options in Elements before you publish your website. This is entirely normal and is simply due to web hosts having different requirements when publishing your site.
Most importantly, you’ll need to remember that the details you enter into Elements are supplied by your hosting provider, not Realmac Software. Many hosting providers will require you to use publishing details that differ from any details you may use to access their control panel in a web browser. While this may be frustrating, it’s designed to keep your private information safe. If you are at all unsure about what to enter into Elements, drop your hosting provider an email, and they’ll be able to advise you.
RapidWeaver Elements gives you the power to customise every part of your website. You have complete freedom for you or your clients. Easily change colors, fonts and text styles, borders, shadows and so much more.
Manage and modify breakpoints and container widths.
The Screens section in the Theme Studio allows you to configue the responsive breakpoints for your website. Watch the video below to learn more about this feature.
Manage your websites global color palette
The color settings allow you to manage a global colour palette for your website. You can add aditional colors, and override theme defaults.
The colors specified in the Theme Studio can be chosen in a component. This can be anything from a font color to a background gradient.
Setup fonts for use in your website
Choose between font name, font resources, and Google fonts.
This short tutorial will show you how to add and animate an icon inside of a button.
Set the scrolling Anchor speed using Smooth Scroll JS Library.
If you want to control the scroll timing (and other options such as easing) when scrolling to an anchor then you can use the Smooth Scroll js library.
To add Smooth Scroll to yoru project, put the following in your project’s Template, just before the closing </head>
tag.
Note the speed option in the docs say this:
[speed] is a number representing the amount of time in milliseconds that it should take to scroll 1000px. Scroll distances shorter than that will take less time, and scroll distances longer than that will take more time. The default is 300ms.
During the winter you might want to add snow to your website…
Adding a snow effect to your website is a fun way to bring festive cheer to your projects in December. It creates a cozy seasonal atmosphere, delights visitors, and adds personality to your design, making your site more memorable and shareable. In this tutorial, we’ll show you how to easily implement a lightweight snow animation using JavaScript in Elements, perfect for enhancing your holiday-themed websites.
The completed project file is included below for your convenience.
Links to the resources used int he Tutorial:
Snowstorm JS Script by Scott Schiller: https://www.schillmania.com/projects/snowstorm/
If you'd like to create the Custom Component show in the Tutorial, copy and paste the following code into the the Template Properties areas in Elements.
Place the following code in your Template:
Place the following code into the Properties:
To change the alignment of the built-in Components, use the Margin setting under the Spacing Control. Watch the video below to learn more about setting the alignment of an object, including how to center an object.
Set the left and right margin to "Auto" to center the component.
Set the left margin to "0" and the right margin to "Auto" to left align the component.
Set the left margin to "auto" and the right margin to "0" to left align the component.
Place the following class scroll-mt-[300px]
in the CSS Classes box under Advanced on the Component you're scrolling too. This class will set a offset of 300px, but you can change it to the pixel value you require.
If you need/want your Anchor link to stop (or leave some space) before a Component on the page you can use the .
How to make a sticky menu and change it's visual properties on scroll
To make a menu sticky, you need to put the menu and all contents in a container (site wrapper) along with making the following changes to the menu settings:
Layout > Position set to Sticky.
Layout > Z-Index > Custom set to 100.
Layout > Type > Uniform > Inset 0.
Watch the following tutorial to see how to build a Sticky Menu, along with adding a drop shadow and frosted glass effect.
In this advanced tutorial we use some Javascript to adjust the look of the menu when the user scrolls down the page.
You can click here to open the Space Demo Project in Elements.
Adding and Removing Standard CSS Classes:
Adding and Removing Tailwind Classes:
This tutorial will show you how to design and build a flexible card for use on your website.
The following tutorial will show you how to quickly create a website banner with background image and overlayed text.
The following tutorial will show you how to make a two coloumn layout in Elements either the flex or grid components.
Elements takes care of everything for you, however, sometimes you need a little extra control or just prefer the way another tool works. We've listed out a collection of great tools and resources that work well alongside RapidWeaver Elements.
Easy to use commenting systems that you can add to any page on your website.
The following blogging platforms can be easily integrated into a static website.
To reset Elements, remove the preferences file by following these steps.
This page is a work-in-progress.
Setting Browser Titles
Add Meta Descriptions
Structuring URLs (so they are human readable)
Use the correct Header Tags
Creating Alt Text for Images
Using a Sitemap (Elements generates this automatically)
Image description is useful for users, search engines, and accessibility tools. It can be set for each image under the "Description" setting in the Image Component settings.
1. Improves Accessibility – Alt text helps visually impaired users who rely on screen readers understand the content of an image.
2. Boosts Image SEO – Search engines use alt text to understand and index images, helping them appear in Google Images search results.
3. Enhances Page Relevance – Properly written alt text with relevant keywords can reinforce the topic of your page, improving rankings.
4. Provides Context if Images Don’t Load – If an image fails to load, the alt text is displayed instead, ensuring users still get the intended information.
A brief introduction to the Elements templating language
The Elements language is a simple, yet powerful templating language for RapidWeaver Elements, it's often referred to as the Elements API.
The Elements language allows third-party developers to create custom Elements that can be used within the RapidWeaver Elements layout engine. Element Dev Packs (.elementsdevpack) are a bundle of files, usually a mixture of HTML, JS, CSS, JSON, and images.
The only thing you need to start building your own custom Elements is a copy of RapidWeaver Elements. Previous web development experience is recommend, but not required.
The following is a list of suggested tools to make developing Elements easier.
A licensed copy RapidWeaver Elements (Required)
We're always around to offer help with getting started or if you just need a hand while developing your next great addon for Elements. Come join us, we're a friendly bunch ☺️
Got questions? email support@realmacsoftware.com
RapidWeaver Elements supports the following URL Schemes.
Magic publishing links provide a quick way to automatically configure a publishing destination within a Elements Project. Most of the settings can be configured, reducing user error and making setup a simple one click solution.
To create a magic link, use the elementsapp://
url scheme with createPublishingDestination
followed by query parameters for the settings.
Magic link format
Example link
Options The available options are as follows
method: SFTP, FTP, FTPS
server: IP address or url of server, including the port
path: Publishing path
username: Username
website: Website address of published content
Text editor, we recommend .
for icon name reference.
A public with a growing collection of Element Dev Packs is now available.
We have a on the — It's open to anyone interested in using or building addons for the RapidWeaver Elements ecosystem.
A standardised approach
Elements is based on Tailwind. We use Tailwind for all our components, and highly recommend everyone using and building for Elements does the same.
If everyone is using Tailwind (and the built-in Theme UI Controls) we can ensure consistency across all components, making it easier for end users to build sites that are consistent and easy to update.
It also makes collaboration smoother, as everyone follows the same styling method.
Your main goal should always be to make a component that feels native to Elements.
In Elements, all styling configurations—such as colors, fonts, and sizes—are controlled by the Theme (which anyone can create) and managed through the Theme Studio (where users can customize the styling to their needs).
Components shouldn't dictate custom styling; instead, they inherit styles from the Tailwind themes. The theme informs the components how they should look, ensuring consistency across all components, whether they are built-in, third-party, or custom-made. This approach ensures that users can switch themes seamlessly without breaking their site’s design.
Allowing components to dictate their own styles will lead to inconsistencies, making it unclear whether a component will “just work” within a given project. That’s why components rely on the values defined in the Theme Studio as their defaults, ensuring uniformity. They are not opinionated about the actual values—they just need to know that a value exists for each style.
For example, let’s say you have a Heading component. You want to set a default font family and font size. In your properties.json, you would define the default font family as heading and the default font size as 3xl.
The component doesn’t concern itself with the specific values of these properties; it only cares that they exist. This allows themes and users to fully customize the styles while ensuring that all components “just work” in any project.
When designing your Component, you should always use the Theme-based UI Controls wherever possible; these include the following:
Tailwind (and Elements) includes an expertly-crafted default color palette out-of-the-box - you should take advantage of that and use it.
All components need to work out of the box. A good guide is to use "Brand" for things like buttons, and "Text" for the text colours, and "Surface" for background colours.
Tailwind offers a utility-first approach to styling. This means you apply small, reusable utility classes directly to your HTML elements. Instead of writing a lot of custom CSS, you can compose styles using these predefined classes.
Instead of writing custom CSS you should use Tailwind utilities directly in your template. This means adding classes like bg-blue-500
, text-center
, or mt-4
right on your HTML elements. This way, you remove the need for scoped CSS because each component’s styles are already self-contained.
Because Tailwind styles are applied directly to DOM elements using utility classes we prevent style leakage between components. Each component’s styles stay within its HTML structure meaning they don’t affect other components or pages on your site.
For customization, you can use properties to generate Tailwind classes ready to use within your templates. This way, you keep flexibility while sticking to the utility-first approach.
In summary, the custom CSS in your component templates should use Tailwind classes. This change removes the need for scoped CSS and keeps all styling within Tailwind. Elements can then generate only the CSS your page uses, since it builds Tailwind locally and includes just the necessary utilities. This results in a smaller, more efficient CSS file(s).
If you’ve read all too the above and are still saying to yourself “great…but I really need to use custom/scoped CSS!” then there is a way but only use this as a last resort!
You can manually “scope” your CSS classes by using the component’s ID in your Template and Styles. Ahiwl this is not strictly “scoped CSS”, it will encapsulate the CSS to each individual component instance.
In your styles you can do something like:
And in your Template file:
Remember; If you add custom CSS it will not be controllable from the Theme Studio, thus resulting in a worse user experiance.
Building your first Component
In this getting started guide we'll learn how to create a Component inside an Element DevPack, and then edit it and see the updates live in Elements.
A growing collection of example Dev Packs are available in our public GitHub repository. These can be downloaded and installed for use in Elements. To load an existing Dev Pack into Elements, follow the steps below.
Launch Elements and open the app Settings window (command-,) and select the "Addons" panel.
Click the "Add Pack" button to navigate to and select an existing Dev Pack. You should now see your chosen Dev Pack in the Installed Addons list view. You cna now close the Settings window.
Open an existing document (or create a new one), and navigate to the Components panel, the components inside of the dev pack you added should now be listed and can be added to your project.
Watch the short video below to see how to install an Element Dev Pack.
The boilerplate code for an Element Dev Pack (and Component) can be created inside Elements.
Go to Elements > Settings > Addons and click the "Create Pack" button in the bottom left had corner of the window. You will then be prompted to enter information about your pack, such as developer name and title, along with a location to save the Dev Pack.
Watch the short video below to see how to create an Element Dev Pack including a Component.
The following video will show you how to edit your newely created component with your favourite text editor. In this video we use Nova from Panic but it will work exactly the same with VS Code, BBEdit, or any other text editor.
The following video shows how you can add extra files for use in your Component. This videos shows adding a JS file and linking to it from the page template.
You can also add shared files that can be used by all the components in a pack. This videos focuses on page level Assets.
Adding a custom icon to your Components gives them an extra level of polish, while making them easier to find visual in Elements.
Watch the short video below to learn more about adding custom icons to your Components.
An Element Pack is a bundled folder
Components and Themes require a specific directory structure in order to work correctly, these are called Bundles in macOS.
Element Packs are essentially a collection of folders and files, with the top-level directory having a name that ends with a .elementsdevpack
extension. This name and structure is only used for development purposes, dev element packs should not be sold or distributed to other users.
Addons distributed via the Elements Store and encrypted and non-editable meaning your code is protected. You can learn more about distributing your addon here.
The following outlines the top level folder structure for an Element Pack. It can contain multiple addons, each component or theme should be placed in the corresponding folders inside the pack.
MyElementPack.elementsdevpack (folder/bundle)
components (folder)
themes (folder)
The following shows an Element Dev Pack containing multiple themes and components:
MyElementPack.elementsdevpack (bundle)
info.json
components (folder)
com.companyname.slideshow (folder)
com.companyname.navbar (folder)
themes (folder)
com.companyname.themes.architect (folder)
com.companyname.themes.solar (folder)
shared (folder)
The info.json file at the root of your Element Pack defines important information about the pack.
title: The name of the element pack
identifier: A unique id for the pack, should be a reverse domain identifier
author: The author of the pack
version: (Integer) The major version number, ie v1, v2
build: (Integer) A number identifying a particular build within the current version. This should increase with each release.
When you create a new pack the version number should be set to 1 and build should also be 1. As you make changes to components and release an update, the build number should increase. This allows you to identify the particular release a user has, identify issues, and supply fixes or add new features.
When you need to make breaking changes, or you'd like to release a chargeable upgrade, it's best to increment the version number and reset the build to 1.
The properties.json file defines the User Interface for an Element. Browse the UI Control docs for a full list of available controls.
Here's an example of setting Default Properites on various UI controls.
View the Common Controls Section in the Elements manual to learn more about the shared settings within this component.
View the Common Controls Section in the Elements manual to learn more about the shared settings within this component.
View the Common Controls Section in the Elements manual to learn more about the shared settings within this component.
View the Common Controls Section in the Elements manual to learn more about the shared settings within this component.
View the Common Controls Section in the Elements manual to learn more about the shared settings within this component.
View the Common Controls Section in the Elements manual to learn more about the shared settings within this component.
View the Common Controls Section in the Elements manual to learn more about the shared settings within this component.
View the Common Controls Section in the Elements manual to learn more about the shared settings within this component.
View the Common Controls Section in the Elements manual to learn more about the shared settings within this component.
View the Common Controls Section in the Elements manual to learn more about the shared settings within this component.
View the Common Controls Section in the Elements manual to learn more about the shared settings within this component.
View the Common Controls Section in the Elements manual to learn more about the shared settings within this component.
View the Common Controls Section in the Elements manual to learn more about the shared settings within this component.
View the Common Controls Section in the Elements manual to learn more about the shared settings within this component.
View the Common Controls Section in the Elements manual to learn more about the shared settings within this component.
Groups allow you to organise similar settings into relevant groups.
Here is an example emtpy group:
You can specify an icon to appear next to the title of your group. The Icon property uses SF Symbols. Please refer to the SF Symbol app for a list of available icons.
Controls should placed inside of the properties array. The following example has a heading and an image drop well inside of the group.
The following example has two groups, the first with a text box, and the second with an image dropwell.
Outline basic information about your Element
The info.json file contains important information about a Component. The file uses the JSON format and consists of a series of key and value pairs. It's required for Component to function.
Every Component needs to define a category in which they belong. This tells Elements how to group components in the UI and helps users to locate components. Your Component MUST use one of the following pre-defined categories.
If you think we're missing a category, please visit the forum and let us know.
Content
Headings, Paragraphs, Lists.
Layout
Grid, Flex, Containers, Columns.
Navigation
Menus, Nav Bars, Breadcrumbs, Tabs.
Forms
Text Fields, Text Areas, Checkboxes, Buttons.
SEO
Keywords, SEO helpers.
Media
Images, Video, Audio Players, Icons, Embeds (YouTube, Vimeo).
Ecommerce
Cart Integration, Product display, Add to Cart Buttons.
Accessibility
ARIA Lables, Contrast Checkers.
Animation
Hover Effects, Animated SVG's.
Dynamic
CMS Components, Google Sheets
Utility
Cookies, Anchors, Placeholders, Dividers.
Interactive
Modals, Popovers, Accordions, Carousels.
Security
Password Protection, Login Forms.
The Elements info.json file supports the following key-value pairs.
identifier (Required)
string
author (Required)
string
The name of the author of the Element. This would usually be the developer name, or the name of the company publishing the Element.
title (Required)
string
The name of the Element. This will be displayed inside of RapidWeaver. A unique and descriptive name is preferable. Overly long names will get truncated, check inside of the RapidWeaver UI for readability.
group (Required)
string
One of the above categories. Components with the same category are grouped together.
tags
array
A list of tags relevant to the Elements.
helpURL
string
A URL to the location of the help documentation online.
infoURL
string
A URL to the location of the marketing page online.
You can use the following code as a starting point for your own info.json file.
At a bare minimum you'll want to include PDF images for light mode icons so they can be used for all views where your Component appears within the RapidWeaver Elements UI.
All Elements require an icon.pdf file for light mode. If the dark-mode.pdf file isn't provided, icon.pdf will be used in Dark Mode.
icon.pdf (Required), 1:1 ratio, e.g. 128x128 (Square)
icon-dark.pdf (optional), 1:1 ratio, e.g. 128x128 (Square)
The Palette image should be named paletteIcon.pdf and paletteIcon-dark.pdf for Dark Mode. If the paletteIcon-dark.pdf file isn't provided, paletteIcon.pdf will be used in Dark Mode.
paletteIcon.pdf (Required), 1:2 ratio, e.g. 128x256 (landscape)
paletteIcon-dark.pdf (optional), 1:2 ratio, e.g. 128x256 (landscape)
All Icon files should be placed at the root of the Component alongside the info.json file.
Watch the short video below to learn more about adding custom icons to your Components.
Your pdf icons MUST be on a transparent background. The background should not be exported as this is generated in Elements.
We've provided an example Sketch document below you can use to get started.
There is some unfinished experimental support for banner style icons, these are great for layout style components. However, this style of icon may not be supported when Elements ships, please use with caution and ensure you also include the standard style of icon.
bannerLayer1.png
bannerLayer1-Dark.png (optional)
Banner icons can be layered, and each layer can represent a different colour in the Theme Studio. For example this icon uses four layers and three of those layers will be tinted with the Theme colour.
bannerLayer1.png
bannerLayer2-brand-500.png
bannerLayer3-brand-200.png
bannerLayer4-surface-500.png
Banner images should be 512px in width, but can be as short or tall as you need. Banner icons will appear the same in both grid and list.
The identifier is the unique ID for your Element. We recommend using a . This should be a string consisting of just lowercase characters and periods without spaces.
title
string
See for more information
id
string
See for more information
format
string
See for more information
visible
string
See for more information
enabled
string
See for more information
responsive
boolean
See for more information