Ingenious McDonald's print ads bring new meaning to fast food

Original Source:

Can you spot a Big Mac at speed?

How To Use CSS To Maintain Aspect Ratio For Responsive Design

Original Source:

Maintaining the aspect ratio of a div is a common requirement when creating responsive web designs. In this article, we’ll explore how to use CSS to maintain the aspect ratio of a div as the window’s width changes.

To achieve this, we’ll use the padding hack. The padding hack is a technique that uses a percentage value for padding-top or padding-bottom to maintain the aspect ratio of an element. The percentage value is calculated based on the width of the parent element. As the width of the parent element changes, the padding value will adjust to maintain the aspect ratio of the child element.

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


Let’s start by creating a div element with a background color.

<div class="aspect-ratio"></div>

.aspect-ratio {
background-color: #ccc;

To maintain the aspect ratio of this div, we’ll set its padding-top to a percentage value. The percentage value will be calculated based on the desired aspect ratio of the div. For example, if we want the aspect ratio to be 16:9, we’ll set the padding-top to 56.25% (9/16 * 100).

.aspect-ratio {
background-color: #ccc;
padding-top: 56.25%;

Now, as the width of the parent element changes, the padding value will adjust as desired.

Here’s an example that shows how to use the padding hack on a div with a background image.

<div class="aspect-ratio" style="background-image: url(‘image.jpg’)"></div>

.aspect-ratio {
background-position: center;
background-repeat: no-repeat;
background-size: cover;
position: relative;

.aspect-ratio:before {
content: "";
display: block;
padding-top: 56.25%;

.aspect-ratio > * {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;

In this example, we are again using the padding hack, and we’re also using a pseudo-element (:before) to create the padding. We’re setting the position of the parent element to relative and the position of the child element to absolute to position the child element inside the parent element. We’re also setting the width and height of the child element to 100% to fill the parent element.

In conclusion, the padding hack is a simple and effective technique for maintaining the aspect ratio of a div as the window’s width changes. By using a percentage value for padding-top or padding-bottom, we can calculate the padding value based on the desired aspect ratio of the div. This technique is widely used in responsive web design and can be used to create a variety of layouts and designs. Be sure to check out our library of CSS articles and tutorials while you’re here!

JUMP Bikes, JUMP On Campaign — beautiful typography

Original Source:

JUMP Bikes, JUMP On Campaign — beautiful typography
JUMP Bikes, JUMP On Campaign — beautiful typography


JUMP Bikes is a shared electric bike company that has made it their mission to encourage more people to ride bikes and reduce their carbon footprint. In an effort to reach a wider audience and increase their ridership, JUMP Bikes launched an out of home campaign shared by ​​Juan Carlos Pagan featuring the phrase “JUMP ON” as a rallying cry, an excellent example of amazing typography. The campaign utilized a film and OOH (out-of-home) advertising to showcase the many different types of JUMP riders.

The “JUMP ON” campaign utilized large typographic phrases that mimicked the white lines of road signs, creating a visual impact that was impossible to ignore. The campaign featured real-life JUMP riders of all ages and backgrounds, including commuters, tourists, and leisure riders, with each rider showcasing a unique story and reason for choosing JUMP Bikes.

The goal of the campaign was to encourage more people to try JUMP Bikes and become part of the electric bike revolution. By using the phrase “JUMP ON,” the campaign not only promoted the brand but also conveyed a sense of urgency and excitement, inviting potential riders to join the movement and make a positive impact on the environment.

Since the launch of the campaign, JUMP Bikes has been acquired by Uber and subsequently sold to Lime, but the legacy of the “JUMP ON” campaign lives on. The campaign served as a powerful example of how effective out of home advertising can be, particularly when combined with a clear and compelling message.

In conclusion, the “JUMP ON” campaign was a successful out of home advertising campaign that utilized a powerful message and visual impact to promote JUMP Bikes and encourage more people to join the electric bike revolution. 

Campaign typography

Bicycle bikes branding  camapign Cycling graphic design  Juan Carlos Pagan jump OOH typography  Bicycle bikes branding  camapign Cycling graphic design  Juan Carlos Pagan jump OOH typography

Bicycle bikes branding  camapign Cycling graphic design  Juan Carlos Pagan jump OOH typography

Bicycle bikes branding  camapign Cycling graphic design  Juan Carlos Pagan jump OOH typography

Bicycle bikes branding  camapign Cycling graphic design  Juan Carlos Pagan jump OOH typography

Bicycle bikes branding  camapign Cycling graphic design  Juan Carlos Pagan jump OOH typography

Bicycle bikes branding  camapign Cycling graphic design  Juan Carlos Pagan jump OOH typography

Bicycle bikes branding  camapign Cycling graphic design  Juan Carlos Pagan jump OOH typography

Bicycle bikes branding  camapign Cycling graphic design  Juan Carlos Pagan jump OOH typography

Bicycle bikes branding  camapign Cycling graphic design  Juan Carlos Pagan jump OOH typography

Bicycle bikes branding  camapign Cycling graphic design  Juan Carlos Pagan jump OOH typography

Bicycle bikes branding  camapign Cycling graphic design  Juan Carlos Pagan jump OOH typography


For more information check out Juan Carlos Pagan on:


Download Photoshop: Get Adobe Photoshop free or as part of Creative Cloud

Original Source:

How to download Photoshop free or as part of a Creative Cloud package.

How To Align Checkboxes and Their Labels Consistently Across Browsers

Original Source:

While checkboxes are relatively straightforward to implement, aligning them with their labels can be a challenge, as each browser renders them differently. In this article, we will explain how to align checkboxes and their labels consistently across all browsers using CSS.

UNLIMITED DOWNLOADS: 500,000+ WordPress & Design Assets
Sign up for Envato Elements and get unlimited downloads starting at only $16.50 per month!



Wrap the Checkbox and Label in a Container

The first step is to wrap the elements in a container so we can use it to apply styling to both the checkbox and the label.

<div class="checkbox-container">
<input type="checkbox" id="checkbox1">
<label for="checkbox1">Checkbox Label</label>

Style the Checkbox and Label

Once we have our container, we can use CSS to position the checkbox and label, adjust their size, and style them.

.checkbox-container {
display: flex;
align-items: center;

.checkbox-container input[type="checkbox"] {
margin-right: 10px;

.checkbox-container label {
margin: 0;

The display: flex; property allows us to align the checkbox and label vertically. The align-items: center; property centers the checkbox and label vertically within the container.

The margin-right: 10px; property adds a small amount of space between the checkbox and the label. The margin: 0; property removes any margin that may be added by default by the browser.

Styling the Checkbox to make it visually appealing

In addition to aligning the checkbox and label, we can also style the checkbox to make it more visually appealing.

.checkbox-container input[type="checkbox"] {
appearance: none;
width: 20px;
height: 20px;
border: 2px solid #ccc;
border-radius: 4px;
background-color: #fff;
cursor: pointer;

.checkbox-container input[type="checkbox"]:checked {
background-color: #007bff;
border-color: #007bff;

.checkbox-container input[type="checkbox"]:checked::before {
content: "2713";
font-size: 16px;
color: #fff;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);

The appearance: none; property removes the default styling of the checkbox, allowing us to create our own custom style. The width and height properties set the size of the checkbox. The border property creates a border around the checkbox, and the border-radius property rounds the corners of the checkbox.

The background-color property sets the background color of the checkbox, and the cursor: pointer; property changes the cursor to a pointer when the user hovers over the checkbox.

The input[type=”checkbox”]:checked selector styles the checkbox when it is checked. The background-color property changes the background color of the checkbox, and the border-color property changes the color of the border.

The input[type=”checkbox”]:checked::before pseudo-element adds a checkmark to the checkbox when it is checked. The content property adds the checkmark character, and the font-size property sets the size of the checkmark. The color property sets the color of the checkmark, and the position: absolute; property positions the checkmark in the center of the checkbox.


By wrapping checkboxes and their labels in a container and applying CSS styling, we can align checkboxes and their labels consistently across all browsers, as well as create a more visually appealing and user-friendly form element. Be sure to check out our other CSS articles while you’re here!

Quick Tip: How to Cache Data in PHP

Original Source:

How to Cache Data in PHP

Learn how caching improves app performance and how to implement it in PHP through output buffering, caching functions, and database storage.

Continue reading
Quick Tip: How to Cache Data in PHP
on SitePoint.

How Blockchain CRMs will Simplify Marketing for Brands

Original Source:

Blockchain’s fallen out of favor thanks to the astronomic rise of AI and ChatGPT.

There are pros and cons to this.

On the pro side, a lot of the “make money quick” crowd and scammers that had such a negative effect on the image of blockchain brands have moved on.

They generally follow the money and that seems to be moving to AI for now.

The con side is that, as public conversations have moved away from blockchain, most people’s lasting impression of the space will be one of the scams, hacks, and shady actors.

Which is a real shame. These people will still be thinking that blockchain is nothing more than cryptocurrency exchanges or NFTs that are simple PFPs.

A little digging into the space will show you that there are some really cool solutions being created. Solutions built on blockchain that aim to make life easier by solving real-world problems.

one of the most powerful upcoming developments, in my opinion, is the growth of blockchain-based CRMs.

These things are set to revolutionize the way brands do business and attract new users. But no one wants to talk about them because there’s a lot of cash being thrown around in AI right now.

I’ll explain why these tools are so powerful shortly. Before I do, we need to understand even the basics of the blockchain and how apps work within the ecosystem.

A little blockchain 101

I won’t go into great detail on blockchain here. There are plenty of great guides online to explain what blockchain is and how it works.

In short, blockchain is an immutable public ledger. In simple terms, a record of transactions that anyone can see and no one can alter.

For example, if you know the wallet (kind of like the username) someone uses, you can see how they’ve interacted with blockchain projects.

Take the below as an example.

It’s a screenshot from a service called Etherscan, which helps you look at the on-chain data (information from blockchain transactions) to understand how someone is interacting. In this case, specifically with people and brands based on the Ethereum blockchain.

This is one of my own wallets we’re looking at.

blockchain 101blockchain 101

You can see what that wallet has interacted with and, if money has been sent, how much, and to whom.

Which is kinda cool.

But how does this actually help any businesses?

The business opportunity a public ledger provides for brands

Here’s where I think the real opportunity for marketers and brands in Web3 lies.

Co-promotions and networking have always been great for brands and businesses to quickly increase their reach.

Find a brand that’s not a competitor but has an overlapping audience, and work out some form of co-promotion to expose your offer to their audience.

A simple promotion like this can bring hundreds or thousands of new users.

The problem, right now, is that getting a collaboration like this approved can be timely and it’s not guaranteed.

You could spend days pursuing a potential collaboration only to finally have the other side say “no thanks, it’s not the right time for us”.

In Web3, everything is public on the blockchain, meaning you can find people who like offers similar to yours without having to go through any gatekeepers.

Let’s head back to my wallet and look for an example.

As you can see below, I interacted with a wallet owned by Binance, the largest crypto exchange.


If I click on the link that says “Binance 18” it’ll bring up all of the people who have interacted with that specific Binance wallet.


It’s basically a huge list of people interested in and who use one of the world’s biggest cryptocurrency exchanges.

If I have an offer that would appeal to those people, I can easily pull a list of them without breaking any confidentiality rules because the list is publicly available.

Imagine if you could do this with an email list.

How valuable would it be to head to a website where there’s a publicly available list of emails who have bought from brands like yours?

That’s essentially what this is.

The only difference is you’re getting access to an identifier. not a communication channel.

Current problem with blockchain data & how CRM could solve it

The first major problem you’ve probably noticed is that your list of “people” is nothing more than weird strings of letters and numbers.

With that being the only identifier, you can’t realistically reach out to them.

If you do want to reach out to them, you have to somehow marry that string of characters to a channel where you can make contact.

I’ve seen plenty of Web3 projects try this. They generally have to resort to using a simple excel sheet which, as you’d imagine, becomes quite cumbersome and difficult to manage.

Here’s the process they often use to populate the sheet with ideal users.

Click through the “to” wallet address
Check if they’ve registered an ENS domain (those .eth usernames)
If they have, head to a platform like Twitter and search for that ENS Domain
Hope they also use it for their Twitter account
If they have, add them and their Twitter account to the sheet

blockchain crmblockchain crm

This process has a low hit rate of matching wallet addresses to social accounts.

It’s also massively time-consuming.

This is where a good Web3 CRM comes in. A blockchain-based CRM is built around user wallets.

You’ll be able to quickly build a list of wallets interested in similar offers to yours and add them to an excel list.

Which is great for 2 reasons.

You don’t have to waste time manually building lists of long confusing character strings
It preserves the user’s personal details and privacy – all you have is their wallet address

But hold on, you might be thinking, how do you then reach out to these users if you just have a wallet address?

Here’s the cool thing.

The better blockchain CRMs will allow you to add these users to marketing funnels that are built around their wallets.

For example, you’ll be able to send those wallets a simple airdrop NFT (something you send to their wallet for free).

According to Blocksee, these Airdrop campaigns have a 100% delivery rate as opposed to emails average open rate of 17-28%.

blockchain crmblockchain crm

That delivery rate should mean your outreach is seen by more people. Add a great incentive, say a 10% discount, if they sign up for more, and you’ll populate your customer list with a lot of new interested people.

And as they’ve now opted in, you have their details to add them to a more traditional nurture sequence for more sales.

All this in a fraction of the time it would take to do manually.

It should also provide far better results as the offers are based on people who have exhibited an action showing they like offers similar to yours.

There’s a growing number of blockchain CRMs on the market (we have a growing list of the best Web3 CRMs here), but if you’re thinking about trying one out, here’s what you want to be looking for.

Dashboard that collates potential customer wallets

Great CRMs have always been about segmenting your potential customers so you can hit them with the best offers at the right time.

CRMs in Web3 are no different. The benefit here is that they can (and should) pull wallets from blockchain transactions and collate them into relevant lists for you to market to.

For example, you could set them up so they pull people into lists like…

Interacted with direct competitor
Interacted with indirect competitor
Interacted with brands covering similar interests
Who our customers have interacted with

You’ll end up with a wealth of information and multiple lists for marketing.

From there, you’ll be able to generate better campaigns. For example…

Use data to inform campaigns within the CRM

A good CRM is about more than segmentation. It’s also about communication.

With lists of people who have interacted with your competition and knowing which other brands your users love, you have a very powerful set of data.

The CRM should then let you run targeted marketing campaigns. That might include…

Marketing to interested users

Once you’ve found users interested in similar offers, you could airdrop (send something to their wallet for free) them something that entitles them to a freebie with your offer.

You know they’re interested in what you do. They just might not know you exist.

So giving them a freebie or welcome discount could get them to your brand without any real hassle on your part.

Imagine if Adidas could message everyone who’s bought a pair of Nike’s in the last year an offer to get 10% off a new pair of shoes.

Finding new collaborators

Marketing tends to follow patterns.

If a large portion of your best users is also great customers of Brand X, there’s a chance that Brand X has other users that would love your offer.

And that you have users who would love theirs.

Armed with the data of the overlap, you could reach out to their team and see if there’s a chance of a co-promotion to benefit you both.

Because you have the data that X% of your users also use theirs, it’s a much easier sell.

Simple data and analytics readouts

Finally, you’ll want decent data readouts.

This way you can better track how the campaigns you’re running are working and figure out what to drop and what to double down on.

In summary

To cut a long story short, a lot of people are trying to move on from blockchain. Its sexiness has been taken over for now by AI.

Thing is, there are some really powerful benefits to having a public ledger.

It’s basically a big list you can filter to find people who have taken action that shows they’re interested in what you offer.

A decent wallet-based CRM will allow you to filter and organize those potential customers so you can reach out to them with offers that bring them to your brand.

When else in history has there been such a simple yet powerful way to approach people who could benefit from your brand’s offer?

The post How Blockchain CRMs will Simplify Marketing for Brands appeared first on Hongkiat.

Exciting New Tools for Designers, March 2023

Original Source:

<p>This month’s edition of Exciting New Tools for Designers and Developers focuses on getting work done smarter.</p> <p>We have invoicing apps and scheduling tools. Some resources will save you the trouble of hiring a designer or developer. And there are some really helpful testing and prototyping tools.<br /></p>
<p><a href="">Glaze</a> is a collection of modern illustrations that are free to download and use. There’s everything from isolated characters to immersive scenes.</p><figure><a href="" target="_blank" rel="noreferrer noopener"><img src="/assets/posts/inline/01-glaze.jpg" alt="Glaze" /></a></figure>
<p><a href="">Rise</a> is an intelligent time tracker that helps you maximize your productivity. It’s an excellent solution for freelancers hoping to improve their income.</p><figure><a href="" target="_blank" rel="noreferrer noopener"><img src="/assets/posts/inline/02-rise.jpg" alt="Rise" /></a></figure>
<p><a href="">Relicx</a> is a testing app that tracks down the UX issues in your product using real user journeys. It’s 10x more effective than beta testing.</p><figure><a href="" target="_blank" rel="noreferrer noopener"><img src="/assets/posts/inline/03-relicx.jpg" alt="Relicx" /></a></figure>
<p><a href="">Outerbase</a> is a GUI for your database. Easily view, edit, and manage all of the data in your database without needing to know SQL.</p><figure><a href="" target="_blank" rel="noreferrer noopener"><img src="/assets/posts/inline/04-outerbase.jpg" alt="Outerbase" /></a></figure>
<p><a href="">Selldone</a> is an enterprise-grade service for building large-volume ecommerce experiences. It’s no-code, white-labeled, and can handle millions of orders.</p><figure><a href="" target="_blank" rel="noreferrer noopener"><img src="/assets/posts/inline/05-selldone.jpg" alt="Selldone" /></a></figure>
<p><a href="">Cakedesk</a> is an excellent invoicing app for freelancers. You can send invoices and proposals and build a database of clients.</p><figure><a href="" target="_blank" rel="noreferrer noopener"><img src="/assets/posts/inline/06-cakedesk.jpg" alt="Cakedesk" /></a></figure>
<p><a href="">Roastd</a> is a feedback service that’s not for the faint of heart. You can pay for brutally honest feedback, and although it may hurt, acting on it will improve your conversions.</p><figure><a href="" target="_blank" rel="noreferrer noopener"><img src="/assets/posts/inline/07-roastd.jpg" alt="Roastd" /></a></figure>
<h1>Galileo AI</h1>
<p><a href="">Galileo AI</a> is a new service that promises to design user interfaces for you. Trained on thousands of designs, it uses AI to create a design based on a text prompt.</p><figure><a href="" target="_blank" rel="noreferrer noopener"><img src="/assets/posts/inline/08-galileo.jpg" alt="Galileo AI" /></a></figure>
<p><a href="">Sizzy</a> is a powerful browser for web development that packs all the tools you need into a single app. You can test different device sizes, debug, and it integrates with lots of devtools.</p><figure><a href="" target="_blank" rel="noreferrer noopener"><img src="/assets/posts/inline/09-sizzy.jpg" alt="Sizzy" /></a></figure>
<p><a href="">Linke</a> is a link manager that lets you create fully branded short links that you can share on social media, your website, or via email. You’ll get notified whenever it’s clicked.</p><figure><a href="" target="_blank" rel="noreferrer noopener"><img src="/assets/posts/inline/10-linke.jpg" alt="Linke" /></a></figure>
<p><a href="">AssemblyAI</a> is a speech recognition API that uses AI to detect speech, transcribe it to text, and understand it. It’s an incredible resource for anyone building customer service apps.</p><figure><a href="" target="_blank" rel="noreferrer noopener"><img src="/assets/posts/inline/11-assembly.jpg" alt="Assembly AI" /></a></figure>
<h1>Freelance Brain</h1>
<p><a href="">Freelance Brain</a> is an add-on for Notion that helps you manage your freelance business. You can manage clients and projects for a more straightforward work life.</p><figure><a href="" target="_blank" rel="noreferrer noopener"><img src="/assets/posts/inline/12-freelancebrain.jpg" alt="Freelance Brain" /></a></figure>
<p><a href="">Glint</a> is an excellent free GUI for Git. It allows you to version control your files in a visual manner, so you don’t need to mess around with the command line.</p><figure><a href="" target="_blank" rel="noreferrer noopener"><img src="/assets/posts/inline/13-glint.jpg" alt="Glint" /></a></figure>
<p><a href="">Maya</a> is an AI assistant for startups. So instead of spending valuable time hunting through your data for answers, ask Maya and get better answers faster.</p><figure><a href="" target="_blank" rel="noreferrer noopener"><img src="/assets/posts/inline/14-maya.jpg" alt="Maya" /></a></figure>
<p><a href="">PersonaGen</a> is a fantastic alternative to spending hours writing personas for user testing. It uses the power of AI to create your personas in seconds. </p><figure><a href="" target="_blank" rel="noreferrer noopener"><img src="/assets/posts/inline/15-personagen.jpg" alt="PersonaGen" /></a></figure>

No-code AI: The Key to Unlocking Efficiency and Growth

Original Source:

No-code AI: The Key to Unlocking Efficiency and Growth

Learn how to take advantage of AI-powered no-code tools, which can now perform many more tasks and solve more complex business problems.

Continue reading
No-code AI: The Key to Unlocking Efficiency and Growth
on SitePoint.

Is Graphic Design a Good Carrer in 2023

Original Source:

Ah, the graphic design world – a vibrant, ever-changing industry that needs both technical expertise and creative flair. Looking into the future, many aspiring designers are grappling with the million-dollar question of is graphic design a good career in 2023.  And really, it’s not surprising! With the advancements in design tools and technology, coupled with …

Read more