Customise radio buttons without compromising accessibility

Here’s a nifty post by Chen Hui Jing where she walks us through her process for making radio buttons accessible via keyboard. I particularly enjoyed this bit where she discusses the four options that are available to us to hide the radio input and replace them with a selection of cards that act like toggles instead:

Most of us mess up the keyboard navigation portion of things when we hide the input element. There are several ways to make something invisible or hidden:

  • clip-path: polygon(0 0)
  • display: none
  • opacity: 0
  • visibility: hidden

For custom radios (or checkboxes), option 2 and 4 are not recommended because screen readers won’t be able to read the default radio element. This also prevents us from using the :focus pseudo-element on the hidden input, so those are out of the picture.

Which leaves us with option 1 and option 3. I sort of like option 1, because clip-path is fun. Clip-path creates a clipping region which defines what portion of an element is visible. This clipping region can be a basic shape or a url referencing a clipping path element.

And, while we're on the topic of styling and accessibility, it's worth checking out Scott O'Hara's repo of accessibility-focused styled form components and Dave Rupert's nutrition cards for accessible components.

Direct Link to ArticlePermalink

The post Customise radio buttons without compromising accessibility appeared first on CSS-Tricks.

Preparing Your App For iOS 12 Notifications

Preparing Your App For iOS 12 Notifications

Preparing Your App For iOS 12 Notifications

Kaya Thomas

In 2016, Apple announced a new extension that will allow developers to better customize their push and local notifications called the UNNotificationContentExtension. The extension gets triggered when a user long presses or 3D touches on a notification whenever it is delivered to the phone or from the lock/home screen. In the content extension, developers can use a view controller to structure the UI of their notification, but there was no user interaction enabled within the view controller — until now. With the release of iOS 12 and XCode 10, the view controller in the content extension now enables user interaction which means notifications will become even more powerful and customizable.

At WWDC 2018, Apple also announced several changes to notification settings and how they appear on the home screen. In an effort to make users more aware of how they are using apps and allowing more user control of their app usage, there is a new notification setting called “Deliver Quietly.” Users can set your app to Delivery Quietly from the Notification Center, which means they will not receive banners or sound notifications from your app, but they will appear in the Notification Center. Apple using an in-house algorithm, which presumably tracks often you interact with notifications, will also ask users if they still want to receive notifications from particular apps and encourage you to turn on Deliver Quietly or turn them off completely.

Notifications are getting a big refresh in iOS 12, and I’ve only scratched the surface. In the rest of this article, we’ll go over the rest of the new notification features coming to iOS 12 and how you can implement them in your own app.

Recommended reading: WWDC 2018 Diary Of An iOS Developer

Remote vs Local Notifications

There are two ways to send push notifications to a device: remotely or locally. To send notifications remotely, you need a server that can send JSON payloads to Apple’s Push Notification Service. Along with a payload, you also need to send the device token and any other authentication certificate or tokens that verify your server is allowed to send the push notification through Apple. For this article, we focus on local notifications which do not need a separate server. Local notifications are requested and sent through the UNUserNotificationCenter. We’ll go over later how specifically to make the request for a local notification.

In order to send a notification, you first need to get permission from the user on whether or not they want you to send them notifications. With the release of iOS 12, there are a lot of changes to notification settings and permissions so let’s break it down. To test out any of the code yourself, make sure you have the Xcode 10 beta installed.

Notification Settings And Permissions

Deliver Quietly

Delivery Quietly is Apple’s attempt to allow users more control over the noise they may receive from notifications. Instead of going into the settings app and looking for the app whose notification settings you want to change, you can now change the setting directly from the notification. This means that a lot more users may turn off notifications for your app or just delivery them quietly which means the app will get badged and notifications only show up in the Notification Center. If your app has its own custom notification settings, Apple is allowing you to link directly to that screen from the settings management view pictured below.

iPhone 8 Plus shown with Manage selected from notification which brings up the Deliver Quietly and Turn Off options.
Delivery quietly feature. (Large preview)

In order to link to your custom notification setting screen, you must set providesAppNotificationSettings as a UNAuthorizationOption when you are requesting notification permissions in the app delegate.

In didFinishLaunchingWithOptions, add the following code:

UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound, .providesAppNotificationSettings]) { ... }

When you do this, you’ll now see your custom notification settings in two places:

  • If the user selects Turn Off when they go to manage settings directly from the notification;
  • In the notification settings within the system’s Settings app.
iPhone 8 Plus shown with Turn Off selected from notification which brings up the Turn Off All Notifications and Configure in NotificationTester options.
Deep link to to custom notification settings for NotificationTester from notification in the Notification Center. (Large preview)
iPhone 8 Plus shown with system Settings app open with Notifications screen for NotificationTester app.
Deep link to custom notification settings for NotificationTester from system’s Settings app. (Large preview)

You also have to make sure to handle the callback for when the user selects on either way to get to your notification settings. Your app delegate or an extension of your app delegate has to conform to the protocol UNUserNotificationCenterDelegate so you can then implement the following callback method:

func userNotificationCenter(_ center: UNUserNotificationCenter, openSettingsFor notification: UNNotification?) {
    let navController = self.window?.rootViewController as! UINavigationController
    let notificationSettingsVC = NotificationSettingsViewController()
    navController.pushViewController(notificationSettingsVC, animated: true)
}

Another new UNAuthorizationOption is provisional authorization. If you don’t mind your notifications being delivered quietly, you can set add .provisional to your authorization options as shown below. This means that you don’t have to prompt the user to allow notifications — the notifications will still show up in the Notification Center.

UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .provisional]) { ... }

So now that you’ve determined how to request permission from the user to deliver notifications and how to navigate users to your own customized settings view, let’s go more into more detail about the actual notifications.

Sending Grouped Notifications

Before we get into the customization of the UI of a notification, let’s go over how to make the request for a local notification. First, you have to register any UNNotificationCategory, which are like templates for the notifications you want to send. Any notification set to a particular category will inherit any actions or options that were registered with that category. After you’ve requested permission to send notifications in didFinishLaunchingWithOptions, you can register your categories in the same method.

let hiddenPreviewsPlaceholder = "%u new podcast episodes available"
let summaryFormat = "%u more episodes of %@"
let podcastCategory = UNNotificationCategory(identifier: "podcast", actions: [], intentIdentifiers: [], hiddenPreviewsBodyPlaceholder: hiddenPreviewsPlaceholder, categorySummaryFormat: summaryFormat, options: [])
UNUserNotificationCenter.current().setNotificationCategories([podcastCategory])

In the above code, I start by initiating two variables:

  • hiddenPreviewsPlaceholder
    This placeholder is used in case the user has “Show Previews” off for your app; if we don’t have a placeholder there, your notification will show with only “Notification” also the text.
  • summaryFormat
    This string is new for iOS 12 and coincides with the new feature called “Group Notifications” that will help the Notification Center look a lot cleaner. All notifications will show up in stacks which will be either representing all notifications from the app or specific groups that the developer has set for there app.

The code below shows how we associate a notification with a group.

@objc func sendPodcastNotification(for podcastName: String) {
let content = UNMutableNotificationContent()
content.body = "Introducing Season 7"
content.title = "New episode of \(podcastName):"
content.threadIdentifier = podcastName.lowercased()
content.summaryArgument = podcastName
content.categoryIdentifier = NotificationCategoryType.podcast.rawValue
sendNotification(with: content)
}

For now, I’ve hardcoded the text of the notification just for the example. The threadIdentifier is what creates the groups that we show as stacks in the Notification Center. In this example, I want the notifications grouped by podcast so each notification you get is separated by what podcast it’s associated with. The summaryArgument matches back to our categorySummaryFormat we set in the app delegate. In this case, we want the string for the format: "%u more episodes of %@" to be the podcast name. Lastly, we have to set the category identifier to ensure the notification has the template we set in the app delegate.

func sendNotification(for category: String, with content: UNNotificationContent) {
let uuid = UUID().uuidString
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false)
let request = UNNotificationRequest(identifier: uuid, content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
}

The above method is how we request the notification to be sent to the device. The identifier for the request is just a random unique string; the content is passed in and we create the content in our sendPodcastNotification method, and lastly, the trigger is when you want the notification to send. If you want the notification to send immediately, you can set that parameter to nil.

iPhone 8 Plus lock screen shown with a grouped notification stack from Notification Tester app.
Grouped notifications for NotificationTester. (Large preview)
iPhone 8 Plus lock screen shown with a grouped notification stack from Notification Tester app that has hidden content.
Notification grouped with previews turned off. (Large preview)

Using the methods we’ve described above, here’s the result on the simulator. I have a button that has the sendPodcastNotification method as a target. I tapped the button three times to have the notifications sent to the device. In the first photo, I have “Show Previews” set to “Always” so I see the podcast and the name of the new episodes along with the summary that shows I have two more new episodes to check out. When “Show Previews” is set to “Never,” the result is the second image above. The user won’t see which podcast it is to respect the “No Preview” setting, but they can still see that I have three new episodes to check out.

Notification Content Extension

Now that we understand how to set our notification categories and make the request for them to be sent, we can go over how to customize the look of the notification using the Notification Service and Notification Content extensions. The Notification Service extension allows you to edit the notification content and download any attachments in your notification like images, audio or video files. The Notification Content extension contains a view controller and storyboard that allows you to customize the look of your notification as well as handle any user interaction within the view controller or taps on notification actions.

To add these extensions to your app go File →  New →  Target.

Xcode shown after selecting from menu to add a new target, Notification Content Extension is highlighted.
Adding new target to app for the Notification Content Extension. (Large preview)

You can only add them one at a time, so name your extension and repeat the process to add the other. If a pop-up appears asking you to activate your new scheme, click the “Activate” button to set it up for debugging.

For the purpose of this tutorial, we will be focusing on the Notification Content Extension. For local notifications, we can include the attachments in the request, which we’ll go over later.

First, go to the Info.plist file in the Notification Content Extension target.

Info.plist file for Notification Content Extension shown in Xcode.
Info.plist for the Notification Content Extension. (Large preview)

The following attributes are required:

  • UNNotificationExtensionCategory
    A string value equal to the notification category which we created and set in the app delegate. This will let the content extension know which notification you want to have custom UI for.
  • UNNotificationExtensionInitialContentSizeRatio
    A number between 0 and 1 which determines the aspect ratio of your UI. The default value is 1 which will allow your interface to have its total height equal to its width.

I’ve also set UNNotificationExtensionDefaultContentHidden to “YES” so that the default notification does not show when the content extension is running.

You can use the storyboard to set up your view or create the UI programmatically in the view controller. For this example I’ve set up my storyboard with an image view which will show the podcast logo, two labels for the title and body of the notification content, and a “Like” button which will show a heart image.

Now, in order to get the image showing for the podcast logo and the button, we need to go back to our notification request:

guard let pathUrlForPodcastImg = Bundle.main.url(forResource: "startup", withExtension: "jpg") else { return }
let imgAttachment = try! UNNotificationAttachment(identifier: "image", url: pathUrlForPodcastImg, options: nil)

guard let pathUrlForButtonNormal = Bundle.main.url(forResource: "heart-outline", withExtension: "png") else { return }
let buttonNormalStateImgAtt = try! UNNotificationAttachment(identifier: "button-normal-image", url: pathUrlForButtonNormal, options: nil)

guard let pathUrlForButtonHighlighted = Bundle.main.url(forResource: "heart-filled", withExtension: "png") else { return }
let buttonHighlightStateImgAtt = try! UNNotificationAttachment(identifier: "button-highlight-image", url: pathUrlForButtonHighlighted, options: nil)

content.attachments = [imgAttachment, buttonNormalStateImgAtt, buttonHighlightStateImgAtt]

I added a folder in my project that contains all the images we need for the notification so we can access them through the main bundle.

Project navigator shown in Xcode.
Xcode project navigator. (Large preview)

For each image, we get the file path and use that to create a UNNotificationAttachment. Added that to our notification content allows us to access the images in the Notification Content Extension in the didReceive method shown below.

func didReceive(_ notification: UNNotification) {
self.newEpisodeLabel.text = notification.request.content.title
self.episodeNameLabel.text = notification.request.content.body

let imgAttachment = notification.request.content.attachments[0]
let buttonNormalStateAtt = notification.request.content.attachments[1]
let buttonHighlightStateAtt = notification.request.content.attachments[2]

guard let imageData = NSData(contentsOf: imgAttachment.url), let buttonNormalStateImgData = NSData(contentsOf: buttonNormalStateAtt.url), let buttonHighlightStateImgData = NSData(contentsOf: buttonHighlightStateAtt.url) else { return }

let image = UIImage(data: imageData as Data)
let buttonNormalStateImg = UIImage(data: buttonNormalStateImgData as Data)?.withRenderingMode(.alwaysOriginal)
let buttonHighlightStateImg = UIImage(data: buttonHighlightStateImgData as Data)?.withRenderingMode(.alwaysOriginal)

imageView.image = image
likeButton.setImage(buttonNormalStateImg, for: .normal)
likeButton.setImage(buttonHighlightStateImg, for: .selected)
}

Now we can use the file path URLs we set in the request to grab the data for the URL and turn them into images. Notice that I have two different images for the different button states which will allow us to update the UI for user interaction. When I run the app and send the request, here’s what the notification looks like:

iPhone 8 Plus shown with custom notification loaded after force touching the notification.
Content extension loaded for NotificationTester app. (Large preview)

Everything I’ve mentioned so far in relation to the content extension isn’t new in iOS 12, so let’s dig into the two new features: User Interaction and Dynamic Actions. When the content extension was first added in iOS 10, there was no ability to capture user touch within a notification, but now we can register UIControl events and respond when the user interacts with a UI element.

For this example, we want to show the user that the “Like” button has been selected or unselected. We already set the images for the .normal and .selected states, so now we just need to add a target for the UIButton so we can update the selected state.

override func viewDidLoad() {
super.viewDidLoad()
// Do any required interface initialization here.
likeButton.addTarget(self, action: #selector(likeButtonTapped(sender:)), for: .touchUpInside)
}
@objc func likeButtonTapped(sender: UIButton) {
likeButton.isSelected = !sender.isSelected
}

Now with the above code we get the following behavior:

GIF of iPhone 8 Plus with custom notification loaded and like button being selected and unselected.
Selecting like button within notification. (Large preview)

In the selector method likeButtonTapped, we could also add any logic for saving the liked state in User Defaults or the Keychain, so we have access to it in our main application.

Notification actions have existed since iOS 10, but once you click on them, usually the user will be rerouted to the main application or the content extension is dismissed. Now in iOS 12, we can update the list of notification actions that are shown in response to which action the user selects.

First, let’s go back to our app delegate where we create our notification categories so we can add some actions to our podcast category.

let playAction = UNNotificationAction(identifier: "play-action", title: "Play", options: [])
let queueAction = UNNotificationAction(identifier: "queue-action", title: "Queue Next", options: [])
let podcastCategory = UNNotificationCategory(identifier: "podcast", actions: [playAction, queueAction], intentIdentifiers: [], hiddenPreviewsBodyPlaceholder: hiddenPreviewsPlaceholder, categorySummaryFormat: summaryFormat, options: [])

Now when we run the app and send a notification, we see the following actions shown below:

iPhone 8 Plus with custom notification loaded with an options to Play or Add to Queue.
Notification quick actions. (Large preview)

When the user selects “Play,” we want the action to be updated to “Pause.” If they select “Queue Next,” we want that action to be updated to “Remove from Queue.” We can do this in our didReceive method in the Notification Content Extension’s view controller.

func didReceive(_ response: UNNotificationResponse, completionHandler completion:
(UNNotificationContentExtensionResponseOption) -> Void) {
guard let currentActions = extensionContext?.notificationActions else { return }

if response.actionIdentifier == "play-action" {
let pauseAction = UNNotificationAction(identifier: "pause-action", title: "Pause", options: [])
let otherAction = currentActions[1]
let newActions = [pauseAction, otherAction]
extensionContext?.notificationActions = newActions

} else if response.actionIdentifier == "queue-action" {
let removeAction = UNNotificationAction(identifier: "remove-action", title: "Remove from Queue", options: [])
let otherAction = currentActions[0]
let newActions = [otherAction, removeAction]
extensionContext?.notificationActions = newActions

}  else if response.actionIdentifier == "pause-action" {
let playAction = UNNotificationAction(identifier: "play-action", title: "Play", options: [])
let otherAction = currentActions[1]
let newActions = [playAction, otherAction]
extensionContext?.notificationActions = newActions

} else if response.actionIdentifier == "remove-action" {
let queueAction = UNNotificationAction(identifier: "queue-action", title: "Queue Next", options: [])
let otherAction = currentActions[0]
let newActions = [otherAction, queueAction]
extensionContext?.notificationActions = newActions
}
completion(.doNotDismiss)
}

By resetting the extensionContext?.notificationActions list to contain the updated actions, it allows us to change the actions every time the user selects one. The behavior is shown below:

GIF of iPhone 8 Plus with custom notification loaded and the quick actions being changed from Play to Pause and Add to Queue to Remove from Queue.
Dynamic notification quick actions. (Large preview)

Summary

There’s a lot to do before iOS 12 launches to make sure your notifications are ready. The steps vary in complexity and you don’t have to implement them all. Make sure to first download XCode 10 beta so you can try out the features we’ve gone over. If you want to play around with the demo app I’ve referenced throughout the article, check it out on Github.

For Your Notification Permissions Request And Settings, You’ll Need To:

  • Determine whether or not you want to enable provisional authorization and add it to your authorization options.
  • If you have already have a customized notification settings view in your app, add providesAppNotificationSettings to your authorization options as well as implement the call back in your app delegate or whichever class conforms to UNUserNotificationCenterDelegate.

For Notification Grouping:

  • Add a thread identifier to your remote and local notifications so your notifications are correctly grouped in the Notification Center.
  • When registering your notification categories, add the category summary parameter if you want your grouped notification to be more descriptive than “more notifications.”
  • If you want to customize the summary text even more, then add a summary identifier to match whichever formatting you added for the category summary.

For Customized Rich Notifications:

  • Add the Notification Content extension target to your app to create rich notifications.
  • Design and implement the view controller to contain whichever elements you want in your notification.
  • Consider which interactive elements would be useful to you, i.e. buttons, table view, switches, etc.
  • Update the didReceive method in the view controller to respond to selected actions and update the list of actions if necessary.

Further Reading

Smashing Editorial (ra, yk, il)

Getting Traction for Your Newly Launched Website

Website Launch Day. How it Goes, Every.. Single.. Time..

Day 1. Your site is now live. It is the best thing ever. Install Google Analytics. Remember to write a privacy page and disclaimer page about Analytics and cookies. Sit glued to your Analytics account for the rest of the day tweaking every aspect in the Analytics console. Oh yeah, while we’re at it, don’t forget to add the site to Google search console too. Great. Done. Sit back and relax. Have a beer. You have done well young Padawan.

Day 2. Enthusiastically dive into your Analytics account. “Hmm, not many views today. Ok I will give it some time.”

Day 3. Open Analytics. “Oh I have a couple of clicks. No, wait – those were me. Doh.” Hound a bit on social media about how great your site is… Check back on Analytics.

Day 4. WHY YOU NO VISIT MY SITE?!?!?!?

y-u-no-visit-my-site

Day 5. Distress, sadness, and an overwhelming feeling of failure. “Maybe I’m not cut out for this web design lark?”

The Freelance Designer Toolbox
Unlimited Downloads: 500,000+ Web Templates, Icon Sets, Themes & Design Assets


Newsflash

You are in this for the long haul and I am afraid to say there are no easy routes to success here. I am here to tell you it’s going to be tough. Perhaps tougher than you think. Have you got what it takes to succeed? Good! I admire your determination. Now, read on and find out about tried and tested ways to get traction for your website.

I hate to say this, but without visitors your website is dead

No matter how innovative the product or service is, or how asthetically pleasing the design, if people are not visiting your website the simple fact is – it is a dead website. The thing is though, you think your site is brilliant, and do you know what? It probably is! But who cares?! Who knows about it? Why should a perfect stranger be interested in it?

You could use social media or send out press releases, but with so many brands clamouring for attention, those messages can often have little effect.

Without Good Content Your Website is Dead

Again, it could be visually the best thing ever, but if there is no content, nothing of real substance, it is a dead website. Content is everything. Think carefully about headlines for page articles. Keyword research will help you a little here but use it as a guide only.

If your site is not primarily a blog, think about adding a blog section. It can be tough and hard work, but a blog is very important . Write at least 1 or 2 articles about your field every week. Let the world know you are an expert in your field. If you are not an expert, give them another reason to visit. Matthew Inman gets visitors by making people laugh. It might not work for everybody, but it sure worked for him. (5 million monthly views).

Give people what they want. Make your ‘about page’ about the visitor, not about you, i.e. written with them in mind. Enlist the help of a skilled copywriter if you feel out of your comfort zone. Most web designers probably are in this regard. They can make a site work well and look nice, analysing the code in depth. As for writing about themselves and their business in a compelling and engaging way, that’s another matter entirely.

First Things to do After Your Site is Launched

Get your site indexed. Submit your url to Google. You should also consider submitting it to Bing and Yahoo as well. You don’t necessarily have to do this as the search engines will pick up your website in time. However, this step will often speed up the process. (We give Google particular attention as they are the biggest player with over 70% of the world’s market share of search.)

Submit a sitemap in the Google search console and check that there are no issues with the site and that your site has a robots.txt file.

Keep calm. Frantically changing things around too soon won’t do you any favours in the search results, especially if it is a newly registered domain. Give it some time. Keep drip feeding new, quality articles periodically over the next couple of weeks.

Pitfalls to Avoid

1) Write for your users, not for robots. It’s ok to listen to SEO advice but if you are not careful your articles will lose their appeal and become spammy and your readers will not appreciate it. This has been said before, and many so called SEO experts that have fixated on certain things are having to constantly re-evaluate their approach.

If you want your site to do well in the long term, filling your page and site with spam is not going to work. Google is constantly looking at this. Do it right and you will be rewarded. Write content for your user first, and for search engines second.

2) Avoid any tool that says it is easy, quick, or cheap. Anyone making you promises in that regard will only do you harm in the long run.

Tried and Tested Tips that Work

Here are some top tips from people at the top of their game who have either tried this or witnessed first hand what happens when people do. These are not just my words, they are things that have been proven to work.

1) Invest in a short, aesthetically pleasing video.

“If there’s one thing every startup should invest in, it should be a short, aesthetically pleasing video that explains exactly how its product works. As a journalist covering startups, I guarantee no amount of selling a concept over the phone is as effective as a well-produced video that clearly communicates the benefit of the app or software. If there’s a good video, I almost always embed it in my article. Bonus points if it’s funny.” Omar Akhtar is the senior editor for The Hub, based in San Francisco

2) Write an article for a popular online resource in a similar field. Often you will get a credit and link to your website.

3) Offer something for FREE: Like an ebook, website template or plugin (maybe you have some code for a project that never saw the light of day) and then aggressively promote it. It will definitely attract a lot of new visitors. For web designers, try to get a free theme featured on WordPress.org and make sure to link to your website, or create a free theme in a niche that people are looking for and feature it prominently directly on your site. It will help immensely.

4) Submit your page to StumbleUpon. Be prepared to expect a high bounce rate, but it can create interest (sometimes a lot of interest at once). That said, it can be very hit and miss, so there are no guarantees here. People have also reported success with their paid results, but here we are particularly looking at organic methods.

Other Tips

  • Performance. Look at page speed (or site speed). Yes Google has made page speed part of its search algoritm, so it’s going to affect your search engine results (to what degree I am not sure, but it’s a fact). However, more importantly, people aren’t likely to stick around or come back for more if your page takes an eternity to load. This applies even more so to mobile. Start with your theme, keep it clean and functional. Don’t do with an image that could be done with css. Optimise images (especially for small screen widths). Look carefully at your typography and ensure it reads well on all devices.
  • HTTPS? Regarding search engine results, the jury is still out on this one for many people. Clearly if you are selling online or passing sensitive information an SSL is a must. Since you are just starting out you won’t have the worry of losing your position in Google so it’s probably a good idea to start with HTTPS from the off rather than have to switch down the line. The web is certainly moving that way, and it will show that you value your visitors security, which is always a good thing, and can go a long way to building trust.
  • Link building. Just to be clear here, we are talking about building meaningful relationships with other website owners and working to build a meaningful brand online. This takes time. We are not talking about artificial manipulation of the search engines with spammy link building campaigns.
  • Get social. Love it or loathe it, you cannot really afford to ignore social media. Promote your website on Twitter and Facebook. Whilst you may want to utilise some automated tools for sharing your articles (time is precious after all) remember to keep the human element, engaging with your followers whenever possible.
  • Learn from your mistakes. Of course, success comes from doing things “right”, but when you are just starting out you will likely make many mistakes. Don’t let fear of failure stop you. Successful people have often made a lot of mistakes, but the key thing is that they don’t quit. They keep moving until they arrive at their goal.
  • Above all else – Be patient, be persistent and keep positive.

Let’s face it, there are not many overnight sensations when it comes to a website. There may be the odd exception of course, but if you are like the vast majority of us, it is going to take time. Try to avoid the temptation to take shortcuts – to the dark side you will stray!

Ok, there is nothing new here. It has all been said before many times, but it is worth repeating. Be determined, and your hard work will pay off. 3-6 months of following the above advice and your site is bound to be getting relevant traffic and traction.

Download older plugin versions from wordpress.org

There's a simple way to get hold of previous versions of your WordPress plugins, for example if a current version breaks your setup.

On the right side of the plugin's page there a link called "Advanced View", which should better be called "Version View":

Very, very (very) far at the end of the page there a dropdown box where you can select the desired version and click "Download" the get the desired version:

205: 5 Obstacles Bloggers Face (And How to Get Over Them)

205: 5 Obstacles Bloggers Face (And How to Get Over Them)

How to Overcome 5 Blogger Obstacles
As I record this, I’m just home from our first ProBlogger event of the year in Brisbane and am preparing for our next one in the coming days in Melbourne.
The Brisbane event was really worthwhile. We heard from Pat Flynn, Jadah Sellner, James Schramko, Kelly Exeter, Shayne Tilley and Laney Galligan and had a couple of days of great teaching and inspiration – including a day with a small group masterminding their businesses.

Each year at our events, I open the event with a keynote. This year I spoke about evolving your blog rather than getting into a ‘revolving’ pattern (or going in circles). I will share more on that topic on the podcast in the future but as we’re very much focused this week on our events and serving our attendees I wanted to give you another taste of what we do at our events and share with you the opening keynote from a previous year as this week’s episode.
I did this in the last episode too and got a lot of positive feedback and hope you’ll enjoy this one too. It’s from 4 years ago but I think it’s spot on in terms of a message for today too. Continue reading “205: 5 Obstacles Bloggers Face (And How to Get Over Them)”

203: How to Approach Influencers in Your Niche

203: How to Approach Influencers in Your Niche

How to Connect With Influencers in Your Niche
Today I want to share some teaching on how to approach influencers and other well known people in your niche (or outside it too).
One of the most powerful ways to grow your profile, audience and brand is to connect with others in your niche. The benefits of doing it can be many and varied – the opportunities that flow from these interactions can be pretty cool for the growth of your blog…. Continue reading “203: How to Approach Influencers in Your Niche”

201: The Secret to Building a Blog with Big Traffic and Profit

201: The Secret to Building a Blog with Big Traffic and Profit

How to Build Traffic and Profit into Your Blog

On today’s episode I want to talk about a key to creating a blog with lots of traffic and profit.

The topic comes from a conversation I had this morning with a new blogger who was asking me about how to create content that would go viral and as I look back at the growth of my own blogs I think it’s an important lesson to my own business’s growth.
Links and Resources on The Secret to Building a Blog with Big Traffic and Profit
Facebook group
ProBlogger Success Incubator
ProBlogger Event
4 Techniques to Get More Eyeballs on Your Blog
31 Days to Build a Better Blog
10 Things You Can Do Today that Will Pay Off On Your Blog Forever Continue reading “201: The Secret to Building a Blog with Big Traffic and Profit”

200: What I’ve Learned About Podcasting in My First 200 Episodes

200: What I’ve Learned About Podcasting in My First 200 Episodes

Lessons Learned in 200 Episodes of Podcasting
Today’s episode is #200, and while it’s a podcast about blogging, today I want to talk about podcasting and share some of the big lessons I’ve learned about this medium since starting this podcast 2 years ago. Continue reading “200: What I’ve Learned About Podcasting in My First 200 Episodes”

5 Smart Alternatives to the Hamburger Menu

Screen space is a precious resource on mobile. To meet the challenge of small screen space while still making navigation accessible, designers often rely on hiding navigation behind the hamburger icon, a prime example of hidden navigation. In this article, we’ll see why hidden navigation creates bad UX and what alternatives are available for designers.

Why the Hamburger Menu Is Bad For UX

On mobile, visible navigation is used 1.5x more than hamburger

If you’re working on digital products, you’ve probably already read dozens of articles describing how the hamburger menu on mobile hurts UX metrics. The main downside is its low discoverability, and this is backed up by actual numbers. In qualitative studies, NNGroup found that hidden navigation is less discoverable than visible or partially visible navigation. This means that when navigation is hidden, users are less likely to use navigation. Hamburger menus drive engagement down, slow down exploration and confuse people.

So What Should We Use Instead?

While there is no hard-and-fast rule for mobile apps and websites, a general recommendation is to use either visiblethe main navigation options are shown in a visible navigation bar—or combo navigation, where some of the main navigation options are visible and some are hidden under an interactive element.

1. Tab Bar

If you have a limited number of top-level destinations in your website or app, a tabbed navigation might be the solution. When a menu is visible at the top or bottom, it’s basically advertising that a navigation is there and people are able to see the navigation options right from the start.

Tabs seem to be the simplest navigation pattern. However, a few things should be considered when designing this type of navigation:

  • Tab bar allows 5 or fewer navigation options to display.
  • One of the options should always be active and should be visually highlighted by, for example, using a contrasting color.
  • The first tab has to be the home page and the order of the tabs should relate to their priority or logical order in the user flow.
  • It’s better to use icons together with labels for each navigation option. Icons without labels work only for common actions, like a magnifying glass icon for search, and for interfaces that the users use frequently (e.g. Instagram).

Tip: In order to save screen space, the navigation bar could be hidden/revealed on downward and upward scrolling.

2. Tab Bar With “More” Option

When you have more than 5 top-level destinations, a practical solution might be to show the 4 prioritized sections and have a 5th element as a list of remaining options.

The design principles for this solution are basically the same as for Tab bar. There’s just one exception: the last element is the ‘more’ item.

The ‘more’ item can work as a dropdown menu or even link to a separate navigation page with the remaining sections. From the first glance this solution isn’t much better than the hamburger menu, since it also hides content and its label doesn’t say too much about what’s hidden behind it. If you correctly prioritize navigation options, however, a majority of your users will have 4 or 5 visible top-priority navigation options on the screen all the time so the navigation experience for them will be improved.

3. Progressively Collapsing Menu

Progressively collapsing menu, also known as the “Priority+” pattern, is a menu that adapts to the screen width. It shows as much of the navigation as possible and puts everything else under a “more” button. Basically, this pattern is a sophisticated version of the ‘Tab bar  + more’ navigation where the number of navigation options hidden behind the “more” menu depends on the available screen space. The flexibility of this solution provides a better user experience than a ‘static’ ‘Tab bar  + more’.

Image Credit: Brad Frost

4. Scrollable Navigation

Similar to the previous two patterns, this is another approach for longer lists. If you have a number of navigation options without a big distinction in priorities, for example music genres, you can list all the items in a scrollable view. By making the list scrollable you allow users to move from side-to-side.

The downside of this solution is that still only the top few items are visible without scrolling and all the remaining ones are out of the sight. This is, however, an acceptable solution when the users are expected to explore the content, for example news categories, music categories or in an online store.

5. Full-Screen Navigation

While with other patterns mentioned in this article, the struggle is to minimize the space that the navigation systems take up, the full-screen pattern takes the exact opposite approach. This approach usually devotes the home page exclusively to navigation. Users incrementally tap or swipe to reveal additional menu options as they scroll up and down.

This pattern works well in task-based and direction-based websites and apps, especially when users tend to limit themselves to only one branch of the navigation hierarchy during a single session. Funnelling users from broad overview pages to detail pages helps them to home in on what they’re looking for and to focus on content within an individual section.

Full-screen navigation in Yelp

Using full-screen navigation, designers can organize large chunks of information in a coherent manner and reveal information without overwhelming the user. Once the user makes their decision about where to go, then you can dedicate the entire screen space to content.

Conclusion

With navigation patterns for mobile, there isn’t a one-size-fits-all solution; it always depends on your product, on your users, and on the context. However, the foundation of every well-designed navigation is information architecture: clear structure, priorities, and labels based on your users’ needs. Helping users navigate should be a top priority for every app designer. Both first-time and returning users should be able to figure out how to move through your app with ease.

LAST DAY: Zelda – A Beautiful and Classy Script Font – only $7!

Source

3 Ways to Get More Subscribers for Your Blog

I have hundreds of readers coming to my blog every day – but nobody ever subscribes to my newsletter. Help!?!

This request came in via email today and I thought I’d share my reply with the 3 suggestions I offered.

—–

Thanks for the question – I suspect you’re not alone with this problem. While a lot can probably be written on the topic, let me suggest 3 things I’ve found helpful increasing subscriber numbers.

Note: the #1 thing I did to building subscriber numbers on Digital Photography School was introduce a lightbox subscriber box. I spoke about this in my 10 Things I Wish I Knew About Blogging webinar so I won’t rehash it here.

1. Ask People to Subscribe

This sounds a little too simple to be effective but I’m amazed how many people do subscribe once you mention you’ve got a newsletter. I’m also amazed how many of our regular and loyal readers don’t know we even have a newsletter, despite it being promoted around the blog.

Some semi-regular calls to subscribe can be very effective.

You can do this in a number of ways, including:

  • Writing a dedicated blog post, every now and again, explaining you have a newsletter and the benefits of subscribing.
  • Mentioning your newsletter in passing in your blog posts. I don’t mean every single post, but a mention now and then will work wonders.
  • Promoting your newsletter across social media. I regularly mention our newsletters on Twitter, when I’m writing a newsletter and when it goes out.

The key to remember, when mentioning your newsletter regularly, is to find fresh ways to talk about it. Don’t just have the same tweet to subscribe every 2nd day.

  • Mention something that is in the next newsletter, that you won’t get anywhere else.
  • Mention that you’ve just hit a milestone number of subscribers to build social proof.
  • Mention that it’s a milestone newsletter. We recently sent out 250th on dPS and made a bit of a big deal about it.

2. Start a Series

Announce that you’re going to be doing a series of posts, on your blog, on a topic that you know will really be useful to your readers.

I remember the first time I announced that I was going to run the 31 Days to Build a Better Blog series (the series that later became the eBook by the same name) I was amazed at how many people subscribed to my blog over the next 24 hours.

I was signalling to readers that I was going to do something that would serve them and in doing so, created anticipation among my readers. This anticipation (as I’ve written about in the past) is a key reason people will subscribe to your blog.

3. Place Calls to Subscribe in ‘Hot Zones’

One last tip is to identify some ‘hot zones’ on your blog, to place calls to subscribe. These zones are either places that your readers will be looking or pages that they’ll be visiting.

Let me suggest a couple:

1. Under Posts

I’m not currently doing this on my blogs, as I use the space under my blog posts for other things, but I’ve found over the years that the area under your blog post (and directly above comments) is a ‘hot zone’ where readers often look for what to do next.

Put yourself in the position of a reader. You’ve read the post and have found it useful. This is the perfect time to ask readers to subscribe because they’re hopefully feeling satisfied, stimulated and helped in some way.

A bold call to subscribe can work wonders here.

2. On Hot Posts

Dig into your blogs analytics package and identify which posts are the most read posts on your blog.

You’ll probably find that these posts are receiving traffic from search engines and are likely being read by first time readers to your blog – people that are often quick to leave again once they’ve got what they’re searching for.

These posts are a real opportunity to make your blog a little more sticky and to hopefully call some of those first time readers to subscribe.

You can do this either by adding a call to subscribe directly to the posts – or you might like to link from these posts to a ‘sneeze page’ (see below).

3. Sneeze Pages

Screen Shot 2013 06 20 at 1 25 12 PMLet me show you a page on dPS, which is a page that generates a large number of subscribers. It is our Photography Tips for Beginners page.

This page is a page in which I link to 33 of the best articles in our archives for beginner photographers. It is a page that ‘sneezes’ readers deep into our archives to good quality content.

It is a great page for driving traffic and getting readers deep into the site but you’ll also note we have a couple of strong calls to subscribe on that page. People click those calls to action like crazy because they can see on the page that we’ve created a heap of useful content.

We link to this sneeze page prominently in the navigation areas all around the site to drive traffic to it and regularly promote the page on social media (as I write this it has received over 90,000 ‘pins’ on Pinterest for example).

Take home lesson – create a sneeze page with a strong call to action to subscribe and drive as much traffic to it as you can!

Note: Sneeze pages are written about on day 18 of 31 Days to Build a Better Blog.

How Have You Increases Subscribers to Your Blog?

I have barely scratched the surface here on how to increase subscribers to a blog and would love to hear your suggestions and experiences on the topic in comments below.

What has worked for you?

3 Ways to Get More Subscribers for Your Blog
http://www.problogger.net/archives/2013/06/21/3-ways-to-get-more-subscribers-for-your-blog/
http://www.problogger.net/archives/category/miscellaneous-blog-tips/feed/
@ProBlogger» Miscellaneous Blog Tips
Blog Tips to Help You Make Money Blogging – ProBlogger
http://www.problogger.net/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg

31DBBB Podcast Challenge: Write a Link Post (And Why You Should!)

This is it! Day Seven of the 31 Days to Build a Better Blog podcast series – you made it through the first week!

If you missed an episode here they are:

But back to today which is another writing challenge, which by the end of the month, should help you define what kinds of posts you like to write and what appeals to your readers.

Today’s challenge is very simple – a link post. But in this episode, I go into more detail about the types of link posts that do well (I talk about the six ways to write a link post), how to expand upon them, and of course – why I think these types of posts are important.

Things have changed since the early days when I favoured link posts, so there’s also tips to ensure your posts will be successful in today’s new online environment.

Don’t forget to share on social media how you’ve enjoyed your first week. What have been the hits and misses for you? What have you learned?

ProBlogger Podcast Avatar

31DBBB Podcast Challenge: Write a Link Post (And Why You Should!)
http://www.problogger.net/archives/2015/07/07/31dbbb-podcast-challenge-write-a-link-post-and-why-you-should/
http://www.problogger.net/archives/category/31-days-to-building-a-better-blog/feed/
@ProBlogger » 31 Days to Building a Better Blog
Blog Tips to Help You Make Money Blogging – ProBlogger
http://www.problogger.net/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg

Collective #338



C338_NomNom

Our Sponsor

Design discovery made easy

The easiest way to search, organize and share all your customer feedback and user research in one place. NomNom is data-driven design made easy.

Check it out


C337_StackBlitz

StackBlitz

StackBlitz is an online VS code IDE for Angular & React for creating, sharing and embedding live projects. Read more about it in this article by creator Eric Simons.

Check it out






C337_Hazel

Hazel

This project lets you deploy an update server for Electron apps with ease: You only need to run a single command and fill out two text fields.

Check it out





C337_MusicBlocks

Music Blocks

Music Blocks is an interactive web based music application built in HTML5 Canvas. The application utilizes the MIDI.js library to create music sequencing in the browser. By Ariel Scott and Mike Aikins.

Check it out












C337_GitPoint

GitPoint

If you didn’t know about it yet: GitPoint is the most feature-rich unofficial GitHub client. Built with React Native.

Check it out


Collective #338 was written by Pedro Botelho and published on Codrops.

Transfer Your Blog From WordPress.com to WordPress.org Part 2

This guest post is by Ayelet Weisz of All Colores.

Yesterday, I started the convoluted process of swapping my blog from WordPress.com to WordPress.org. As you may remember, I’d finally got to the point where I was ready to import the files of my blog. Everything seemed to be okay, until….

Big Deal #4: The import keeps getting stuck

You see that white screen? That’s how it stayed.

Importing the files

At first, I was happy. The little circle on my browser was turning. I assumed it would take a lot of time. Even though my blog was obviously smaller (2.9 megabytes) than the maximum allowed file (64 megabytes), I figured it would take time to import eight months worth of blogging with almost 2000 photographs.

So I let it be.

When I returned to my computer, I found out that the import process had got stuck. Remember, my blog crashed for almost 48 hours. I was sure that was the reason of my current technical challenge. After my blog returned to life and I was able to work again, I repeated the process explained above. While my blog hasn’t crashed since (and it was in late February), after a short moment of importing, nothing was circling anymore: the white screen of the import remained white.

Big Deal #5: Challenges with the blog file

I decided to open the file I had exported from WordPress.com. This is what it looked like:

Inside the file

I learned that there were two errors in the file:

  1. Error on line 149 at column 32: Namespace prefix atom on link is not defined.
  2. Error on line 150 at column 29: Namespace prefix atom on link is not defined.

I Googled it and found various discussions on the matter. I looked for ways to fix the file, yet found no help in simple language. I tried exporting the file from WordPress.com and importing to WordPress.org various times, and kept hitting the same error, only in different lines and columns each time.

As I kept searching the web, more and more answers seemed to lead to one solution, but one that sounded too simple—and to be honest, too frustrating—to be true.

The advice said, refresh the page.

I exported the file once more. Imported it once more. And then refreshed it an unbelievable number of times.

Each time, more and more files appeared to be added. Sometimes only a few files were added when I hit Refresh; sometimes there were many at a time.

The list of problem files

Either way, the list of files kept growing.

At the end of every file line, it said “already exists”. For example, “Media ‘DSCF1372’ already exists”. Also, I didn’t see all my posts and pages on the list. I was concerned that some aspects of the blog were being imported multiple times and some not at all.

Then I got some good news.

“All Done. Have Fun!” WordPress.Org wrote to me.

All done, have fun

Could it all really be done? Could I now actually stop dealing with technicalities and return to writing?

I logged in to my new URL: www.AllColores.com—no “WordPress” between my blog’s name and the dot-com—and I saw my blog! It was an exciting moment.

Until I noticed something was not okay.

Big Deal #6: My photos weren’t included

All was well with the posts and the comments on my blog, but no photos appeared in the posts. Let me remind you, we are talking about almost 2000 photos, which I made sure to include in the export and import processes.

After some digging in my dashboard, it turned out I’d actually done things well. The photos were indeed imported to the new blog … most of them just weren’t “attached” to any blog post.

Unattached images

The solution? Take a deep breath!

On the left-hand sidebar of your dashboard you will find the word “media”. Click on it. You will reach your media library, where all your photos are listed. I had 1856 media files, all of which were photos, and 1847 of them were unattached. That means that only nine photos were attached.

As you will see in the above photo, in each line beside the media file, you will find a column named “author”. Next to it, there will be a column called “attached to”. If the photo is unattached, an Attach button will be available. Click on that button to attach the picture to the post.

Attaching images

An image will pop up, asking you to search for a post or a page. You can type the beginning of a post title, or choose from a list offered by WordPress by clicking on the right post, then click on Select.

If you, too, have many media files and don’t feel like spending hours “attaching” them to countless posts, you can Google for plugins that might do it for you. From the various message board discussions I read, these actually had helped several people. I tried a couple of options, but they did nothing for me. It was back to manual work.

How do you remember which media file belongs in which post?

That’s where not deleting your WordPress.com blog comes in handy. Keep one window open on your WordPress.org dashboard, and log back in to your WordPress.com dashboard on another. Go to your media library. In your WordPres.com dashboard, files are attached to posts. Follow what it says there as you attach photos on your WordPress.org dashboard.

And, as it turns out, there’s a way to hurry up the process after all.

On any given page, mark all the photos related to a single post and only then click Attach on one of the photos. You will select a post the same way, yet when you click Select, up to twenty photos will be attached at the same time.

Bulk image attachments

Once I was done attaching, I verified that all photos were transferred and attached well.

The end result

Here is a part of my post “More Photos from Bariloche”, which I published while in Argentina in September 2011 to let everyone back home know I’d been doing well and enjoying the snow.

A post

Here is part of that post as it appeared on my new WordPress.org blog in late February 2012:

The old post

At last, I could breathe a sigh of true relief. I would have preferred to start with WordPress.org, yet accomplishing this triumph gave me a new boost of energy as I returned to do what I love most: writing.

Have you encountered any other technical challenges while transferring your blog from WordPress.com to WordPress.org? Share your tips and tricks with us in the comments.

Ayelet Weisz is an enthusiastic writer and translator from Israel. She celebrates the everyday and extraordinaire joys of life through travel on her travel blog, All Colores. Follow her adventures onTwitter and sign up to her RSS Feed.

The post Transfer Your Blog From WordPress.com to WordPress.org Part 2 appeared first on ProBlogger.

Transfer Your Blog From WordPress.com to WordPress.org Part 2
https://problogger.com/transfer-your-blog-from-wordpress-com-to-wordpress-org-part-2/
http://www.problogger.net/archives/category/blog-networks/feed/
Blog Networks – ProBlogger
Blog Tips to Help You Make Money Blogging – ProBlogger
https://problogger.com/wp-content/uploads/powerpress/problogger_podcast-891.jpg

Powered by WPeMatico

Inspiration for Menu Hover Effects

Today we’d like to share some menu hover effects with you. We hope this set inspires you and gives you some ideas for your next project. The effects are either powered by CSS only or with the help of anime.js. Some also use Charming, for individual letter effects.

The first style is a recreation of the link hover effect seen on The Feebles with a slight adaption. The effect “Dustu” got inspired by the link hover effect seen on Flambette.

Attention: We are using some modern CSS techniques and properties for the demos (grid, flexbox) so please view them in a modern browser.

This demo is kindly sponsored by FullStory.

Example Menu Hover Effect

The structure for the menus depends on the effect but let’s have a look at the one that was inspired by the beautiful The Feebles website. We call it “Adsila”:

<nav class="menu menu--adsila">
	<a class="menu__item" href="#">
		<span class="menu__item-name">Artists</span>
		<span class="menu__item-label">Explore all artists' portfolios</span>
	</a>
	<a class="menu__item" href="#">
		<span class="menu__item-name">Exhibitions</span>
		<span class="menu__item-label">Discover their stories</span>
	</a>
	<a class="menu__item" href="#">
		<span class="menu__item-name">Schedule</span>
		<span class="menu__item-label">View our event calendar</span>
	</a>
	<a class="menu__item" href="#">
		<span class="menu__item-name">Mission</span>
		<span class="menu__item-label">Read our mission statement</span>
	</a>
	<a class="menu__item" href="#">
		<span class="menu__item-name">The Gardens</span>
		<span class="menu__item-label">Get to know our eco village</span>
	</a>
	<a class="menu__item" href="#">
		<span class="menu__item-name">Buy Tickets</span>
		<span class="menu__item-label">Purchase event tickets online</span>
	</a>
	<a class="menu__item" href="#">
		<span class="menu__item-name">Contact</span>
		<span class="menu__item-label">Get in touch and find us</span>
	</a>
</nav>

We have the following common styles for all the menus:

.menu {
	position: relative;
	z-index: 10;
}

.menu__item {
	position: relative;
	display: block;
	outline: none;
	margin: 0 0 1.5em;
	line-height: 1;
}

.menu__item-name,
.menu__item-label {
	position: relative;
	display: inline-block;
}

.menu__item-name {
	font-size: 1.25em;
}

.menu__item-label {
	margin: 0 0 0 0.5em;
}

“Adsila” has these specific styles:

.menu--adsila {
	font-size: 1.15em;
	font-family: 'Nunito', sans-serif;
}

.menu--adsila a {
	color: #272727;
}

.menu--adsila .menu__item {
	margin: 0 0 1em;
}

.menu--adsila .menu__item-name {
	padding: 0 0.35em;
	font-weight: bold;
	line-height: 1.4;
	transition: color 0.5s;
	transition-timing-function: cubic-bezier(0.2,1,0.3,1);
}

.menu--adsila .menu__item-name::before {
	content: '';
	position: absolute;
	z-index: -1;
	width: 100%;
	height: 50%;
	left: 0;
	bottom: 0;
	opacity: 0.3;
	transform: scale3d(0,1,1);
	transform-origin: 0% 50%;
	transition: transform 0.5s;
	transition-timing-function: cubic-bezier(0.2,1,0.3,1);
}

.menu--adsila .menu__item-label {
	font-size: 1em;
	letter-spacing: 0.05em;
	transform: translate3d(-0.5em,0,0);
	transition: transform 0.5s, color 0.5s;
	transition-timing-function: cubic-bezier(0.2,1,0.3,1);
}

.menu--adsila .menu__item-label::before {
	content: '';
	position: absolute;
	z-index: -1;
	width: 25%;
	height: 1px;
	left: 0.05em;
	top: 1.25em;
	opacity: 0.3;
	transform: scale3d(0,1,1);
	transform-origin: 100% 50%;
	transition: transform 0.5s;
	transition-timing-function: cubic-bezier(0.2,1,0.3,1);
}

.menu--adsila .menu__item:nth-child(odd) .menu__item-name::before,
.menu--adsila .menu__item:nth-child(odd) .menu__item-label::before {
	background: #fe628e;
}

.menu--adsila .menu__item:nth-child(even) .menu__item-name::before,
.menu--adsila .menu__item:nth-child(even) .menu__item-label::before  {
	background: #6265fe;
}

/* Hover */

.menu--adsila .menu__item:nth-child(odd):hover,
.menu--adsila .menu__item:nth-child(odd):focus {
	color: #fe628e;
}

.menu--adsila .menu__item:nth-child(even):hover,
.menu--adsila .menu__item:nth-child(even):focus {
	color: #6265fe;
}

.menu--adsila .menu__item:hover .menu__item-name::before,
.menu--adsila .menu__item:focus .menu__item-name::before,
.menu--adsila .menu__item:hover .menu__item-label::before,
.menu--adsila .menu__item:focus .menu__item-label::before {
	transform: scale3d(1,1,1);
}

.menu--adsila .menu__item:hover .menu__item-label,
.menu--adsila .menu__item:focus .menu__item-label {
	transform: translate3d(0,0,0);
}

.menu--adsila .menu__item:hover .menu__item-label::before,
.menu--adsila .menu__item:focus .menu__item-label::before {
	transition-timing-function: ease;
	transform-origin: 0% 50%;
}

We have added a slight variation to the effect by moving the label a bit and showing a line left to the label. As you can see, we don’t use different colors for each item but rather, we distinguish the even and the odd ones.

We hope you enjoy these styles and find them inspirational.

References and Credits

Inspiration for Menu Hover Effects was written by Mary Lou and published on Codrops.

Challenge: Update Your Blog’s About Page

Today I want to set us all a little homework – a challenge of sorts – to update your blogs ‘About Page’.

This challenge evolves out of the embarrassing realisation that my own about page here on ProBlogger was dated and in need of a refresh.

It had been well over 12 months since I’d last looked at it – in that time I’d ended some projects mentioned on the page but also started new things like the ProBlogger Event – embarrassing!

It is particularly embarrassing because a blog’s About Page is often one of the first places a new visitor to a blog goes to check out what the blog is about, who is behind it and to make a decision whether it’s a blog that they want to subscribe to!

Many bloggers I speak with report that their About Page is one of their most read pages on their blog – get it wrong and you could be losing readers, hurting your brand or just looking dated.

So today I did a quick update of the page to fix the obvious problems and have put a fuller rewrite on the cards for the next week.

I also thought if my about page was dated – there must be a lot of others out there with similar issues so lets do a group challenge of sorts and all refresh out pages together!

There is no right or wrong way to write your about page but if you’re looking for a bit of inspiration check out this previous post on the topic – How Your About Page Can Make or Break Your Blog which gives some practical tips including:

  • Introduce yourself
  • Remember the mantra: What’s In It For Me?
  • Sharing Who the Blog is For
  • Being Personal – but not too personal
  • Determine the goal of your About page
  • Always end with a call to action

Once you’ve updated your About Page – please link to it below in comments so we can see the approach you’ve taken (I’m sure we could all learn a lot about creating great About Pages through seeing how each other does it).

Challenge: Update Your Blog’s About Page
http://www.problogger.net/archives/2013/06/12/challenge-update-your-blogs-about-page/
http://www.problogger.net/archives/category/miscellaneous-blog-tips/feed/
@ProBlogger» Miscellaneous Blog Tips
Blog Tips to Help You Make Money Blogging – ProBlogger
http://www.problogger.net/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg

WordPress Feature Review: New Features You Missed in 2012, Part 2

This guest post is by Michael Scott of WPHub.com.

Yesterday, we started our tour of new features added to WordPress in version 3.4.

Today we continue the tour with a look at helpful new features available in version 3.5.

New features added to WordPress 3.5

Released late last year, WordPress 3.5 was the second and final major WordPress release of 2012.

This was the first release to include the new default design Twenty Twelve. It comes with a cool new feature that lets you install plugins you marked as a favorite on WordPress.org directly from your dashboard. However, many bloggers were surprised that the link manager has been removed from the default version of WordPress (though most agree removing this was a good decision).

Let’s take a look at the features.

New feature: Install favorite plugins

Now you can install your favorite plugins directly from your WordPress dashboard.

If you are logged in at WordPress.org, you will see a new option to favorite a plugin. You simply need to click on the link in order to add a plugin to your favorites.

favorite-plugin-1

As you can see, a new link for favorites has been added to the WordPress plugin area.

favorite-plugin-2

After you enter your WordPress.org username, you will see a list of all the plugins you have added as favorites. You can then install your chosen plugin easily.

favorite-plugin-3

Most WordPress users tend to use the same plugins on each of their WordPress websites. In the past, most people would bookmark their favorite plugins or keep a list of useful plugins so that they didn’t forget them. Saving important plugins at WordPress.org will allow you to quickly install frequently used plugins on every website you own very easily.

The way this new feature is set up, you don’t have to log in to your WordPress.org account on your blog, you only need to enter your username. This means you can see which plugins have been marked as favorites by any user on WordPress. You can share your favorites list with friends simply by telling them your username.

Also, if you know the WordPress username a website owner uses, you could enter their username into the plugin area to get a sneaky look into their favorite plugins (though there is no guarantee they are using a certain plugin on any given website).

New feature: Link manager removed

The Link Manager is no longer part of the core WordPress install.

The WordPress link manager, more commonly known as the Blogroll, was once one of the most popular features with bloggers and was used to display links on millions of blog sidebars. Thankfully, WordPress isn’t too sentimental—they know that the link manager is now only used by a small percentage of users.

The removal of the link manager follows the policy to remove non-essential items from the WordPress core to make the default version of WordPress quicker and leave additional functionality to plugins and themes.

links-new

Those who upgrade to WordPress 3.5 will no longer see the link manager in the WordPress menu if you haven’t used it before.

links-old

If you used your blogroll before you upgrade, the links manager will not be removed. It’s only removed on installations where no links were added (i.e. only the default links to WordPress-related websites were in your database). The link manager is available via an official plugin for anyone who wants to add the functionality back to their WordPress website.

New feature: New default design Twenty Twelve

The default design for WordPress has been released with this new version.

Twenty Twelve was originally planned to be part of WordPress 3.4 but was delayed. It was later released in the official WordPress theme directory in between the release of 3.4 and 3.5.

WordPress 3.5 is the first official release that includes this new theme (Twenty Ten and Twenty Eleven are included, too).

Some WordPress users have voiced their disappointment in Twenty Twelve’s minimal design, however most WordPress designers have been pleased with the evolutionary steps in this new official theme. The theme was clearly made with child themes in mind, and with the inclusion of child themes being introduced six months before, I imagine we are going to see a lot of varied designs being created from this base.

twenty-twelve-screenshot

As before, the design can be modified using the theme customizer. Small differences are apparent—no header image is set by default, and no sidebar is shown if no sidebar widgets are present. In addition to the sidebar widget, the static home page also comes with two widget areas (each takes up 50% of the screen width). This makes creating a corporate-style home page very straightforward.

twenty-twelve-widgets

Like Twenty Eleven, Twenty Twelve supports post formats. Each of the additional post formats have a different design to distinguish them from other formats.

post-formats

You’ll find that there isn’t much difference in styling between some post formats. There’s a content template for each one, so these designs can easily be changed with just a few small edits.

asides

Twenty Twelve has a responsive design, so it looks the same on any browser and any device. It has beautiful typography too which makes reading a joy. If you know a little coding, you should be able to design some interesting websites using Twenty Twelve.

New feature: New Welcome screen

WordPress have improved the Welcome screen in 3.5.

Previously, the Welcome screen had an introduction and three columns of links.

welcome-screen-old

The new Welcome screen looks much cleaner. The introductory description is gone, as is the description for each section. There are fewer links to choose from, and the link fonts have increased in size too. It’s much easier to use because of these changes.

welcome-screen

New feature: New color picker

Slight improvements have been made to the color picker.

The color picker for the built-in theme customizer has had a small visual improvement. Previously WordPress used the popular color wheel.

color-picker-old

The new color picker looks much more modern. Common colors are displayed at the bottom and there is a new Default button which lets you return to the default color for the property instantly.

color-picker

New feature: Media interface improved

The WordPress media interface has been vastly improved.

The media interface has had a much-needed overhaul. The old Upload/Insert text above your TinyMCE WYSIWYG editor has been replaced with a more prominent Add media button.

media-interface-1

Clicking on the Add media button will bring up the new media interface. The old interface used to appear in an overlay that covered approximately 40% of the page (centered). The new overlay covers around 95% of the page. The same three options are available as before: Upload Files, Media Library and Embed from URL.

The media library not only looks better, it works better too. All items are shown in the center panel, with details of any selected item being shown on the right panel. Previously, items were shown vertically using a list and you had to click a Show link in order to see more details.

You can show all items, items uploaded to the post you are modifying, images, audio, and video. You can enter search terms to filter results, too.

media-interface-2

Multiple items can now be selected at once. Not only can you modify details of uploaded items more quickly, you can now insert multiple images, audio files, and videos directly into posts. This saves you a huge amount of time. The days of bloggers inserting dozens of images into blog posts one by one are over.

media-interface-3

If you select more than one item, you will have the option of inserting them into a post together. You will also see an option to Create a new gallery. In the past, media items were always grouped together with the post or page they were uploaded from. This new system means you can group items together at any time and insert them anywhere you want.

media-interface-4

The new media interface is arguably the most important new feature for WordPress bloggers. Images, videos, and audio are so important to us. The new interface really speeds up the process of inserting these assets into your blog posts.

New feature: XML-RPC enabled by default

XML-RPC is now enabled by default.

XML-RPC needs to be enabled in WordPress so that external applications can connect to WordPress. Historically, this setting has always been disabled by default.

ios-wordpress

When XML-RPC is enabled, WordPress can be used through a host of different mobile applications and you can use third-party blog editors such as Windows Live Writer, BlogDesk and Post2Blog.

New feature: Dashboard now supports all-HiDPI

The WordPress dashboard now supports retina display,

Those who have shiny new high-resolution retina display devices will be pleased to know that the WordPress dashboard is fully compatible with HiDPI.

Other features added to WordPress 3.4

Below is a list of some of the other features that were added to WordPress 3.5:

  • improved support for keyboard navigation and screen reading
  • search for comments of a particular status
  • external libraries for scripts such as TinyMCE, SimplePie, jQuery 1.8.2 and jQuery UI have all been updated. Backbone and Underscore have also been added.

A full list of features added to WordPress in version 3.5 can be found in the WordPress codex.

WordPress for the future

Each year the WordPress platform evolves and 2012 was no different. Features such as the theme customizer, live preview, and favorite plugins install option have made using WordPress easier for both beginners and veterans.

Whilst WordPress has moved beyond its humble blogging roots somewhat, it is still the best blogging platform available. The Link Manager has been downgraded, however new features such as inserting multiple media items, Twitter embeds and continued support for micro blogging post formats such as asides, quotes, and links, have ensured that WordPress remains number one in the blogging world.

WordPress have ensured they are keeping up with user habits, too. The Admin interface supports retina display, the new default design is responsive and they continue to improve their mobile applications. In short, WordPress is a mobile-friendly platform.

I hope you have enjoyed this review of the new features introduced to WordPress in 2012. Let us know what your favorite new feature is and why!

Michael Scott has been working with WordPress themes and websites in varying capacities since 2007. It was mainly as a project manager where he quickly developed a love for their simplicity and scalability. As a strong advocate of all things WordPress, he enjoys any opportunity to promote its use across the Interweb and on WPHub.com.

The post WordPress Feature Review: New Features You Missed in 2012, Part 2 appeared first on ProBlogger.

WordPress Feature Review: New Features You Missed in 2012, Part 2
https://problogger.com/wordpress-feature-review-new-features-you-missed-in-2012-part-2/
http://www.problogger.net/archives/category/blog-networks/feed/
Blog Networks – ProBlogger
Blog Tips to Help You Make Money Blogging – ProBlogger
https://problogger.com/wp-content/uploads/powerpress/problogger_podcast-891.jpg

Powered by WPeMatico

20 Must Have Tools For Creating And Maintaining Your Website

Being a web developer or designer nowadays can be both stressful and rewarding. Rewarding because your services are some of the most sought after ones in the current market and stressed because the expectations of your clients seem to increase with each passing day. It’s clear that we no longer need plain, functional websites, but interactive, memorable designs. This is why we’ve compiled a list of 20 of the best tools and services available to help make your job a lot easier.


[m2leep]

HotJar

1

 

It’s essential for all developers and designers to know how users are really using their websites. By careful analysis of this information, you will be able to offer your client useful data and help them improve their UX and conversion rate. And HotJar is just the tool to help you accomplish all of this. HotJar is a platform that offers you tools to gather all the information you could possibly require in order to get a complete picture of the way users interact with your website. Unlike its competitors, HotJar offers all its features within a unified dashboard so you’ll be able to review the collected data in one place as opposed to flitting from one screen to another in order to have a good grasp on what’s happening.

As far as what the features offered, HotJar offers you: feedback and exit polls that can help you get first hand information about how user-friendly your website is, online surveys so as to be in tune with what your visitors require, heat maps that show you the areas of interest within your website, funnel and form analysis so that you’ll know what pages or sections prove to be the least interesting to users, full visitor session playback and much more.

Giverz

2-2

 

Giverz is currently hosting a giveaway from which you can get up to 4 bitcoins. Do you need to know more or are you already typing in their name in your search engine? Well, if you do, here’s what Giverz is all about: they are a team dedicated to gathering all the best giveaways available on the Internet and offering them up for grabs to their emailing list. How it works is that you go over to their website, subscribe to the mailing list and join in on the fun. In no time, you will hear about one of their amazing campaigns (be sure to follow them on Twitter and Facebook in order to always be up to date) and the countdown begins. As soon as the timer hits 0 the entire emailing list will receive an email with a link letting them know the giveaway is up for grabs. The fastest ones to click on the link will be the lucky winners, so time is of the essence. What are you waiting for?

ZippyPixels

3

 

ZippyPixels is a platform that aims to supply developers and designers with some of the best products available at very reasonable prices. The whole idea started of after the team over at ZippyPixels (who are experienced web developers and designers as well), searched the Internet for a place where they could get the resources they needed without having to pay an arm and a leg. They found none. So the decided to create their own service and keep in close touch with the community they aimed to help. This is how bundles like Grandé came to life. The community asked for a comprehensive bundle that will supply their every need and ZippyPixels was more than happy to oblige. The Grandé bundle offers 160 HD mockups that cover categories such as:

  • Logos
  • Books
  • Flyers and advertisements
  • Device
  • Magazines
  • Stationery and more

Go over to ZippyPixels and take a look at just how awesome these mockups look and start thinking about all the cool ways in which you could use them.

 

ShrinkTheWeb

4

 

ShrinkTheWeb is the tool that all mobile and web developers have been looking for. By using ShrinkTheWeb, they will be able to turn the process of taking screenshots and including them into their websites from a pain into a breeze. This tool has an automated screenshot system that is capable of scaling the pictures to any need, not to mention a speed of capture and delivery that is unmatched across the Internet. All you have to do is write a singe line of code or use an existing plugin and ShrinkTheWeb will set off to do all the hard work. In addition to its screenshot features, ShrinkTheWeb also offers URL to PDF Conversion, Custom Size Previews and Private Label Service that will help you make your website stand out from the crowd. ShrinkTheWeb is not only a free service, it also offers unparalleled tech support in case you need assistance.

 

BrowseEmAll

5

 

Writing code that ensures your website is compatible cross browser is a best practice, but it’s not always the way things go. This is why BrowseEmAll is a tool that will make web developer and designer’s lives all the much easier. By using BrowseEmAll, you will no longer have to test out your website on a variety of browsers, the analysis is done automatically. This tool offers you the possibility to view your website in multiple browsers at the same time and track down compatibility issues faster and easier. Also, BrowseEmAll offers a wide range of mobile simulators that will not only help with the responsive aspect of your website, but they will also help you optimize your website for mobile access. What’s more, you will be able to test your HTML and raw files directly within BrowseEmAll, so you won’t have to upload them to a server beforehand. In conclusion, by using BrowseEmAll you will be able to ensure that your websites will look good on any browser or device.

 

Paddle

6

 

Paddle.com is an eCommerce platform made especially for digital content creators. It has been created with the intention of taking away the boring aspects of eCommerce like payments, file hosting & delivery, taxes and chargebacks to let sellers focus on what they’re really enjoy: creating products.

An analytics dashboard complete with sales stats, customer data and the ability to manage/create products means that sellers can control everything in a single location. And Paddle’s beautiful Overlay Checkout creates a seamless buying experience for customers, since they’re able to complete purchases on the same webpage.

Getting started couldn’t be easier: sellers just need to name and price their product, upload their file and that’s it, they’ll be given a dedicated checkout link they can use to sell their products. Paddle handles the rest! If you’d like an easy way to sell digital content, sign up for free here.

 

Stamplia

7

 

Stamplia Builder is an editor that allows you to modify purchased email templates easily and more efficiently than ever before. Getting started with Stamplia Builder is a quick process and before you know it you will be working on your first template like you’ve been using the editor your whole life. Within the Stamplia Builder you will have access to automatic export of templates into email providers like MailChimp, CampaignMonitor and SendGrid. Also, all the templates you create with this tool will automatically be compatible with the email provider’s editor. In addition to this, you will be able to see your modifications on the email template in a real-time responsive visualization mode and add amazing images with the aid of the faster image editor. When you’ve finished, Stamplia Builder makes sure that the template you have modified will look good both on computer and mobile and you will be able to test it in order to make sure your emails won’t accidentally get into Spam.

 

DealFuel

8

 

A variety of developer tools, an impressive assortment of graphic resources, an extended array of eBooks and eCourses and numerous bundles to gather them all, this is how DealFuel could be described. As you can see, this website is the perfect place to head to regardless of what your needs might be. Here you’re sure to find first rate WordPress themes and plugins, SEO tools and dedicated software for your website. You’ll also find elegant mockups, professional textures, vectors and Photoshop actions for all your visual needs. And don’t forget about the numerous bundles that include a whole selection of useful resources.

What’s more, DealFuel has a dedicated section for freebies that contains some of the best free products that you can find anywhere. And even if it so happens that the product you’ve had your eye on isn’t in the free category, don’t worry too much about it, DealFuel has already negotiated a deal for you that will ensure you get the best possible price for it. And here is an exclusive coupon code that will get you an additional 10% discount over and above the discounted offers – WONDER2014.

 

RumbleTalk

9

With RumbleTalk you will be able to add an active HTML5 chat room to your websites in a matter of minutes. The chat rooms offered by RumbleTalk are highly customizable and are sure to fit in seamlessly with any kind of website that requires them. The chat rooms come complete with moderators, SSL and a variety of themes. You also have a choice about the way you integrate them, either by embedding them in a webpage or featuring them as a floating toolbar. Regardless of the way you choose to display them, you can be sure that the chat rooms will be a pleasant experience for all your users as they will be free to add videos and photos straight into the chat room and steer the conversation towards anything they see fit. Don’t hesitate to start your business relationship with RumbleTalk straight away, they are a team dedicated to keeping their customers happy and creating a relationship based on trust and mutual understanding with them.

 

OOcharts

10

 

OOCharts is the API that will help you create your very own Google Analytics dashboard. This tool is completely free and could prove to be invaluable in your future projects. It will help you make chats of your website’s activity, it will queue your requests that exceed the limits of Google Analytics and make sure you get your information reliably, it will cache requests of previous reports so that they’ll load faster next time you call them up and all you need to do in order to get stated is connect your Google profile and make an API key for your website.

 

Luvly

11

 

Luvly is a premium digital marketplace that encompasses an extensive collection of resources that are meant to help you make your website more visually appealing. Since the way your website looks is one of the most important things to your visitors, it is essential that you select only the best tools available for your graphics. This is why Luvly is the perfect marketplace for you. All resources available on this marketplace have gone through a thorough approval process destined to ensure that only the best make it online. The range of requirements that Luvly supplies is impressive. You will find any graphic resources here from mockups, to icons, vectors, patterns, logos and more. They also have dedicated sections for both WordPress and Blogger templates that are sure to respond to all your requirements. What’s more, Luvly is dedicated to helping its community grow and empowering designers, so they organize numerous workshops and tutorials to help them get their feet under them.

 

CloudCart

12

 

In order to create an online store, you need all the expertise you can get. Luckily, CloudCart has the best know-how about making an online store and then some. By employing CloudCart all you’ll have to worry about is having all the products you’re selling in stock and ready to go out to clients as soon as your website comes online. CloudCart will take care of everything required in order to create a successful website for your business. They will provide you with secure hosting, beautiful themes that are completely search engine optimized and make sure that word about your website is spread over a variety of social networks like Twitter or Facebook. What’s more, they will offer you Integrated Payments, 1-click checkout, international payments and a delivery and tax calculator so that you’ll be ready to start selling as soon as your website is live. And, in addition to all of this, you will have advanced reporting tools at your disposal that will let you know how your business is doing at any given time.

 

Opinion Stage

httpvh://www.youtube.com/watch?v=P7xKNlWbk0s

Adding opinion polls to your websites can prove to be highly beneficial for their user friendliness level. Opinion Stage allows you to register to their service and add your first poll on your website in under 5 minutes. By using polls provided by Opinion Stage you will be entering a community of users that are currently using on of the best platforms for online surveys available. And that’s no small feat. Opinion Stage not only offers completely customizable polls for your pages, but they also offer an all-encompassing dashboard where you can view all the results gathered by your polls instantly. In addition to this, you have complete freedom to filter these results by a number of criteria and even display them in charts and graphs in order to read them easily. Another cool feature that Opinion Stage provides you is the possibility to monetize your polls by either including ads within them or by promoting other polls from the Opinion Stage network.

 

WPEka Club

14

 

A repository of first-rate WordPress themes and plugins is something that sounds good to a lot of people. WPEka Club is such a place. With a collection of more than 60 themes and plugins that cover a varied array of products for Business, Auctions, Social Media, AdSense, SEO and more, WPEka Club is the perfect place to head to for all the WordPress awesomeness. By opting for their all-inclusive plans that begin at only $27 a month, you will have complete access to the entire WPEka Club collection as well as all the brand new releases that are released while you’re an active member(and the team over at WPEka promises that you will enjoy at least 4 new releases each month). Don’t hesitate to join WPEka Club’s community and enjoy all the premium WordPress themes and plugins as well as one of the best support systems available in the premium WordPress market.

 

Fiddler

15

 

Fiddler is a Web Debugging Proxy that is guaranteed to make your life a lot easier. By using this tool you will be able to test the security of your website, detect bottlenecks within the communication between server and application and manipulate and edit all your webs sessions. With Fiddler you will be able to put your website to the test regardless of what operating system you’re using (Windows, Mac or Linux), browser or platform (Ruby, Php, Java and more).

 

Web Starter Kit

16

If you’re looking to start work on a project that is destined to be used on multiple devices, then the Web Starter Kit is the tool you need. Amongst its features you will find: multi-device responsive boilerplate, living component style guide, live browser reloading and more. Also, by using the Web Starter Kit you will be following the Web Fundamentals guidelines out of the box.

 

BrowserShots

17

 

If you’re looking for a fast way to see how your website looks on a variety of browsers, head on over to BrowserShots. All you have to do in order to get the information you require is enter your website’s URL, choose the browser you need and click Submit. In a matter of minutes you will have a snapshot loaded an ready to be examined.

 

jQAPI

18

 

jQuery is undoubtedly being used to its full potential nowadays and many developers turn to it frequently. This is why it is so important to have access to its documentation easily and within a well structured browser. This is what jQAPI provides, an alternative jQuery Documentation Browser that is available both online and offline and that will make developer’s lives a lot easier.

 

New Relic

19

 

New Relic is a tool that will help you gather performance data from all your applications and allow you to make informed decisions about their future. Among the products that New Relic offers you’ll find: Application performance manager, native mobile application performance manager, real time big data analytics for business decision making, server monitoring for cloud and data centers and more.

 

Inspiration Hut

20

 

It’s always good to be able to have access to honest reviews and feedback from fellow developers and designers and Inspiration Hut is the place where you can find that. Inspiration Hut features a diverse array of products available for the entire web development and design community and it also encourages this community to share its work with others. By browsing through their gallery you are sure to find numerous resources that will help you in your work. The best part is that most of them are free. Inspiration Hut encourages its community to contribute to its ever-growing repository and create an online go to place that guarantees quality. Among the cool resources you’ll find over at Inspiration Hut are: backgrounds, Fonts, Brushes, Free PSDs, Icons, Mockups, Patterns, Print Templates, Textures, Themes, UI Kits and much, much more. So head on over to Inspiration Hut and enjoy their collection and don’t forget to credit when required.