Whew boy, Safari 16 is officially out in the wild and it packs in a bunch of features, some new and exciting (Subgrid! Container Queries! Font Palettes!) and others we’ve been waiting on for better cross-browser support (Motion Path! Overscroll Behavior! AVIF!). I imagine Jen Simmons typing cheerfully writing out all of the new goodies in the roundup announcement.
Just gonna drop in the new CSS features from the release notes:
Added size queries support for Container Queries. Chrome started supporting it in Version 105, so all we need is Firefox to join the party to get The Big Three™ covered.
Added support for Container Query Units.These units go hand-in-hand with Container Queries. Once again, we need Firefox.
Added support for Subgrid. Now it’s Safari and Firefox with support coverage. The good news is that Chrome is currently developing it as well.
Added support for animatable Grids. Very cool! Chrome has always had some implementation of this and Firefox started supporting it back in 2019.
There are quite a few nice updates to Safari’s developer tools, too. We’ve got a Flexbox inspector, a Timelines tab (with an experimental screenshots timeline), and Container Queries info, to name a few. There’s a full 32-minute video that walks through everything, too.
I thought Safari 15 was a pretty killer release, but 16 is pretty epic in comparison. I know there’s a “Safari is the new Internet Explorer” vibe in some circles, but I’m happy to see big jumps like this and appreciate all the forward momentum. Go Safari Team!
Ahmad Shadeed got an early jump on container queries and has a growing collection of examples based on everyday patterns.
And, if you missed it, his latest post on container queries does a wonderful job covering how they work since landing in Chrome 105 this month (we’ll see them in Safari 16 soon). Some choice highlights and takeaways:
Containers are defined with the container-type property. Previous demos and proposals had been using contain instead.
Container queries are very much like the media queries we’ve been writing all along to target the viewport size. So, rather than something like @media (min-width: 600px) {}, we have @container (min-width: 600px) {}. That should make converting many of those media queries to container queries fairly straightfoward, minus the work of figuring out the new breakpoint values.
We can name containers to help distinguish them in our code (e.g. container-name: blockquote).
Are you looking to display recently registered users in WordPress?
Sometimes you may want to display your recently registered users on your site to create a sense of community and encourage others to become a member, join your forum, or simply create an account.
In this article, we’ll show you how to display recently registered users on your WordPress site.
Why Display Recently Registered Users in WordPress?
If you run a membership site, online course, forum, or any other type of WordPress website that allows for user registration, then you may want to display your recently registered users.
This adds social proof an also give other members a chance to welcome new members to the community. If you run a small business website, then you can even create a filterable directory of your team members or contributors.
There are all kinds of reasons to display your recently registered users in WordPress:
Highlight a list of recently registered business owners
Encourage new forum sign ups by showing a large and active community
With that said, let’s show you how you can display recently registered users in WordPress. Simply use the quick links below to jump straight to the method you want to use.
It comes with advanced features that let you format, filter, and display user-submitted data on the front end of your website, including user profile data.
You can use it to create all kinds of useful online tools like web directories, online calculators, user directories, and more. Plus, you have complete control over how your user directories look and function.
It even integrates with MemberPress, so you can easily display a list of your recently registered members on your membership website.
Note: Formidable Forms won’t automatically display all new users. Instead, it gives you complete control over which users and what information is displayed. To display a user in your directory, a separate form will need to be created and filled out. We’ll show you how.
Upon activation, you need to go to Formidable » Global Settings and then click the ‘Connect an Account’ button or manually enter your license key and click the ‘Save License’ button.
You can find this information under your account on the Formidable Forms website.
Next, you need to install the Formidable Directory addon. Depending on your plan, this addon may already be active.
If not, then you need to go to the Formidable Directory page and click the ‘Get Formidable Directory’ button. After you complete the purchase, it will automatically be added to your account.
Next, go to Formidable Forms » Add-Ons and search for the ‘Directory’ addon.
Then, click the ‘Install’ button.
After that, navigate to Formidable » Global Settings.
Then, click the ‘Directory’ menu option.
This will automatically start the setup wizard to help you create your user directory. If you haven’t connected your site to Formidable Forms, then you’ll be asked to do that now.
Then, click the ‘Install & Activate’ button to install and activate any required addons.
Next, click the ‘User/Member’ box to display your recently registered users and choose a ‘Two Column’ or ‘Table List’ display.
Then, enter a page name for your listing form and your directory page and click the ‘Create Now’ button.
This will automatically create the necessary forms, views, and pages to display your users, but it doesn’t publish them yet, so you can still make changes.
After that, click the ‘View Page’ button in the ‘Customize Your New Pages’ section.
This will automatically take you to a page with your registered user list.
It includes a search bar, A-Z filter, and boxes containing each of your registered users.
After that, you need to make your page live.
To do this, simply click the ‘Edit Page’ button at the top of the screen.
This brings you the page editor screen. You can edit this page just as you would any other WordPress page.
When you’ve finished editing the page, you need to click the ‘Publish’ button to make it live.
If you want to customize how your registered user directory looks, then go to Formidable » Views.
Then hover over the view that was just created and click ‘Edit’.
This brings you to the view editor screen.
Here, you can fully customize how your user directory looks. For example, you could limit the number of users per page, filter and sort the user entries, or add more content to their individual profiles.
Once you’re finished making changes, click the ‘Update’ button.
It will automatically update the user directory you published earlier.
Publish Your Form to Collect Information From New Users
After you customize and publish your user directory, you’ll need to publish the form connected to the directory too.
Users who have already registered on your WordPress site will need to fill out this separate form to be listed in the user directory.
First, you need to go to Pages » All Pages and then click on the page that was created earlier, in this case, it’s ‘Add a Listing’.
This brings you to the page editor screen, where you’ll see the page title and a shortcode.
Next, click the ‘Publish’ button to make your page live.
After that, you can view your page with the user registration form.
New users can use this form to fill out their user directory profile information on your website.
If you want to customize the form fields, then navigate to Formidable » Forms.
Next, click on the form you named earlier, in this case, it’s ‘User Directory Profile’.
This will bring up the form builder.
If you want to add new form fields, then simply drag them from the options panel on the left onto your form.
To delete existing form fields, click on the field and click the ‘Three Dots’ menu option.
Then, click ’Delete’.
Once you’re finished customizing your form, make sure to click the ‘Update’ button to save your changes, and your form will automatically update.
Method 2. Display Recently Registered Users with Dynamic User Directory
Another way to display recently registered users is with the free Dynamic User Directory plugin.
It’s not as advanced or customizable as Formidable Forms, but it lets you display a simple list of your recently registered users.
First thing you need to do is install and activate the plugin. For more details, see our step by step guide on how to install a WordPress plugin.
After that, you need to go Settings » Dynamic User Directory to configure your directory settings.
First, you can control how your registered user list is sorted in the ‘Sort Field’ drop down and choose which kind of directory type you want to display in the ‘Directory Type’ drop down.
After that, you can enable a directory search feature by checking the ‘Directory Search’ box.
If you want to exclude certain user roles, or specific users, then you can select them from the drop down list.
Next, you can control how your directory looks and the user information that will display in the ‘Listing Display Settings’ section.
You have control over the user’s name, avatars, borders, and more.
Below that, in the ‘Directory Totals Settings’ meta box, you can choose the total number of users, customize the text, and more.
Displaying the total number of users can be helpful if you want to use social proof to encourage new users to create an account on your site.
Next, you can customize how the letter links and pagination displays on your user list.
You can set the number of users to show per page, change the spacing, and more.
Once you’re finished, click the ‘Save options’ button at the bottom of the screen to save your directory.
This will create and display a shortcode for your user directory at the top of the page. You need to copy this to add your directory to your site.
Then, open the page, post, or widget area to display your list of users.
Next, click the ‘Plus’ add block icon, search for ‘Shortcode’, and select it.
After that, simply paste the shortcode into the box.
Then, click the ‘Publish’ or ‘Update’ button.
Now, you can view your list of recently registered users on your site.
If you want to add the list of recently registered users to a post or widget area, then simply follow the above steps.
Method 3. Display Recently Registered Users by Adding Code to WordPress
Another way you can display your recently registered users is by adding code to WordPress. If you haven’t done this before, then see our guide on how to copy and paste code in WordPress.
function wpb_recently_registered_users() {
global $wpdb;
$recentusers = '<ul class="recently-user">';
$usernames = $wpdb->get_results("SELECT user_nicename, user_url, user_email FROM $wpdb->users ORDER BY ID DESC LIMIT 5");
foreach ($usernames as $username) {
if (!$username->user_url) :
$recentusers .= '<li>' .get_avatar($username->user_email, 45) .$username->user_nicename."</a></li>";
else :
$recentusers .= '<li>' .get_avatar($username->user_email, 45).'<a href="'.$username->user_url.'">'.$username->user_nicename."</a></li>";
endif;
}
$recentusers .= '</ul>';
return $recentusers;
}
This code snippet creates a simple list of your recently registered users and displays the avatar image and username.
After that, there are two different ways you can display your recently registered users. The first is by adding a template tag to your theme’s template files, like sidebar.php, footer.php, and more.
This code will create the following shortcode you can use in your posts, pages, and widget areas.
[wpb_newusers]
To add the shortcode to your website, simply open the page where you want the list of users to display.
Then, click the ‘Plus’ add block icon, search for ‘Shortcode’, and select it.
After that, paste the shortcode you copied above into the shortcode box.
When you’re done making changes, click the ‘Update’ or ‘Publish’ button to make your changes live.
You can follow the same steps by adding the shortcode to a post or a widget area.
Now you can view your list of recently registered users. To adjust how they appear, you would need to add custom CSS to your website.
We hope this article helped you learn how to display recently registered users in WordPress. You may also want to see our guide on how to get a free SSL certificate, and our expert picks of the best business phone services for small businesses.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
You are debugging a web app for a client but the minified version of the JavaScript and CSS code makes it impossible to understand what statements the browser is actually executing.
You could break down the original code line by line in your editor putting some console.log() statements here and there, or try debugging it from its transformed state.
Ever wondered how to shorten text with an ellipsis? It’s quite easy to do and only requires a few lines of CSS. Follow along as I take you through setting this up! Also, if you’re interested in checking out the...
Accordions are all over the web and mobile apps. They are a great way to show and hide content based on user interaction and aren’t very hard to build but usually require a bit of HTML, CSS and JavaScript. Did...
If you use VS Code, you might have enabled the setting for re-opening a previously open file next time the app launches. I do. I like that.
But sometimes you really, really don’t want that to happen.
I recently ran into one of those times! I had to reinstall my local copy of this site and, with it, the 3GB+ database that accompanies it. Being a WordPress site and all, I needed to open up the SQL database file to search-and-replace some stuff.
If you’ve ever tried to open a super duper large file in VS Code, then you know you might need to jiggle a few settings that increase the memory limit and all that. The app is super flexible like that. There’s even a nice extension that’ll both increase the memory and perform a search-and-replace on open.
Anyway, that big ol’ database file crashed VS Code several times and I wound up finding another way to go about things. However, VS Code keeps trying to open that file and inevitably crashes even though I nuked the file. And that means I wait for the MacOS beachball of fun to spin around before the app crashes and I can reopen it again for reals.
Well, I finally decided to fix that today and spent a little time searching around. One Stack Overflow thread suggests disabling extensions and increasing the memory limit via the command line. I’m glad that worked for some folks, but I had to keep looking.
Another thread suggests clearing the app’s cache from the command palette.
Nice, but no dice. 🎲
I wound up going with a scorched earth strategy shared by Jie Jenn in a helpful YouTube video. You’ve gotta manually trash the cached files from VS Code. The video walks through it in Windows, but it’s pretty darn similar in MacOS. The VS Code cache is located in your user folder.
Notice that I have the Backups folder highlighted there. Jie removed the files from the CachedData folder, but all that did was trigger a prompt for me to re-install the app. So, I took a risk and deleted what appeared to be a 3GB+ file in Backups. I showed that file the door and VS Code has been happy ever since.
Ask me again in a week and maybe I’ll find out that I really screwed something up. But so far, so good!
The time for CSS-Tricks is over. Now is the time for CSS Crimes!
In this current landscape of content service providers, users are often limited to expressing themselves in text, links, and images. Sanitization rules tend to strip out HTML, JavaScript, and various attributes.
Social media service Cohost allows users to have greater freedom with markup and inline styles than we may be typically used to. Some users have taken advantage of this freedom to commit CSS Crimes! It has resulted in creative recreations of familiar interfaces and interactive games by using properties in unconventional ways.
Blackle Mori created a contraption where pulling a handle slowly turns a series of gears, pulleys, and chains. Eventually an aperture opens to reveal the site’s mascot (“eggbug”) and the proclamation “Good Job!”. I have stared at this in Developer Tools and it is an amazing combination of grid, resize, transform, and calc(). I ended up adding a border to all <div>s to try and get a better understanding of how each individual element moved.
Several other CSS Crimes use resize to allow viewers rudimentary click and drag functionality.
There have been situations in the past where I have been restricted from using the full toolkit of HTML, JavaScript, and CSS. There have been many instances of using decorative CSS shapes to get around images. I have used :hover as a workaround for mouseenter and mouseleave. I have used input:checked as a sibling selector for toggling.
While CSS Crimes are probably not something you would want to employ on a regular basis, we should embrace experiments within constraints that can foster creative solutions.
Today, we’ll go over how we can transform a regular checkbox input element to a responsive toggle switch. It’s not as hard as you may think and only involves CSS. No JavaScript. So let’s get into it! If you get...
How often do you find yourself on a website or app looking for a toggle for dark mode? Most apps now-a-days, like Facebook, Twitter, Instagram, & Snapchat just to name a few, use some sort of dark mode feature. Implementing...
WordPress.com has ended the pricing experiment it began at the beginning of April. The company announced today that it is rolling back its pricing structure to the previous model, which offered five plans, including the free tier.
A few months ago, WordPress.com pared back its pricing table from five to just two plans (Free and a $15/month Pro plan) as a major unannounced change, slashing free storage limits and imposing a traffic ceiling. After nearly two months of overwhelmingly negative feedback, the company added a new $5/month Starter plan to bridge the gap between Free and Pro, but even this entry level plan didn’t remove ads.
The changes were not clicking with users and many of them announced plans to move away from WordPress.com to new platforms. The company claims it was responding to feedback in reverting to the previous pricing model, but after 15 weeks of running the experiment, they likely had enough data to force the decision.
“As we began to roll out our new pricing plans a couple of months back, we took note of the feedback you shared,” Automattic VP of Content Michael Pick said in the new pricing announcement. “What we heard is that some of you missed the more granular flexibility of our previous plans. Additionally, the features you needed and pricing of the new plans didn’t always align for you.”
WordPress.com also emailed its customs about the availability of add-ons for à la carte upgrades for features like access to premium themes, removal of ads, and custom CSS. Notably missing was an add-on for storage upgrades, which multiple customers expressed in the comments that they are eager to have.
Customers reacted positively to announcement of the pricing reverting back and several thanked the company for taking their feedback seriously. WordPress.com confirmed that customers who switched to the previous Starter and Pro plans will be able to remain on those plans indefinitely with auto-renew if they choose.
Hey, so it’s been a minute since we announced that CSS-Tricks is now part of the DigitalOcean family. Things are pretty much business as usual and hopefully it feels that way to you, too. Now that we’re getting settled, we’re eager to start poking at the future of this site.
What sort of things are we poking at? Well, that’s where you come in. You see, there’s no shortage of ideas for CSS-Tricks, but we only want to work on things that continue to make CSS-Tricks one of the spots you come to time and again for all things front-end (including actual CSS tricks).
So, we put together a short little survey for you. Nothing crazy, just a few questions to help us vet those ideas and ultimately shape the future of CSS-Tricks.
Thanks so much for your help! And while I have you, thanks for continuing to hang with us. In the seven years I’ve been working here at CSS-Tricks, I know this site wouldn’t even be here today without y’all. Here’s to the future of CSS-Tricks and learning together!
CSS-Tricks Newsletter
Oh, and one more update for all of you who miss the newsletter: it will be back! But we had to drop a ton of you off the list (seriously, like 80% of all subscribers) to be compliant with legal stuff that’s over my head. No worries, though, because you can re-subscribe right down here with your email address.
I got to speak to Jon Kantner! Jon is an incredibly prolific creator, and I believe has the most appearances in the CodePen Spark of any creator. Like so many other creators I’ve talked to Jon also shares what he knows in a variety of ways, like writing (see his personal site, or articles he wrote when I ran CSS-Tricks). We got to chat about some of his iconic Pens, his work, and some past fascinations like Tweet-sized code experiments. Follow him on Twitter here.
Case in point: there’s a little progressive enhancement in there using @supports for older browsers lacking support the font-palette property. Then the post gets into a strategy that shows the property’s light and dark values at play to make the font more legible in certain contexts. There’s also a clever idea about how creating multiple @font-palette-values blocks with the same name can be used for fallbacks.
It’s been more than a decade since responsive web design became a household term, and it’s critical that all front-end developers know how to use CSS media queries in 2022. The basic syntax for a CSS media query isn’t difficult to remember, but it’s not as easy to recall all the different media features you have access to when building responsive websites.
In CSS, we make selections of different devices by using media queries. Media queries give us an easy way to select devices based on numerous conditions, such as screen size, pixel density, or even format: i.e., print or screen.
This has progressively gotten more complicated over time, and now we are often balancing many conditions that sometimes conflict with each other.
Today I’d like to share a little experiment with you that is based on the layout transition of Aristide Benoist’s amazing homepage. Basically, I’m trying to rotate this layout just like Siddarth did in this shot. No WebGL for this experiment so we definitely don’t reach the slickness level of Aristide’s work but it’s fun to try it out.
Our initial scrollable view looks as follows:
Once we click on an item, we animate the stack to the right side, enlarging the items and showing our content:
Here we can now navigate using the arrows. Once we scroll, we move back to the initial stack view.
Here’s the whole flow in a video:
Please keep in mind that this is very experimental and that there might be bugs
I really hope you have fun with this little experiment! Thanks for checking by!
A user might be operating in front of a mobile screen and a desktop screen, but their expectation changes widely on both devices. A user in front of a mobile device is a little less patient, as they are mostly “on the go” compared to when they are in front of a desktop. Mobile devices have changed the overall user experience and how a user perceives a website nowadays. In short, we need our content to render dynamically on mobile and desktop screens abiding by their requirements. If we could do that, we could create a responsive design with content specific to the device users.
For example, you cannot hide a “Login” button on a dropdown or hamburger menu in the corner. While you can do that on a desktop screen (even though it’s a bad design!) and the user will find it. The developers cannot mess up with the mobile design, considering the traffic size and data generation a mobile device is responsible for. Also, we have a lot to share with our users on the developer's end and want a large screen space to accommodate everything.