Miami Mangos

Growing up, I had a mango tree. So did some of my friends. Late summer rained endless mangos onto my backyard and mango vendors would line some of the roads nearby. A visit to a friend's house could start with abuela's mango smoothie and end with mango smiles.

Mango UI started as an experiment to transfer these experiences to a website. Using the fruit as inspiration, I came up with deisgn tokens that felt to me most like the freshness the fruit exudes.

Color

The colors are lifted directly from some mangos I bought from Publix since they had that 5 for $5 deal. Lightening and darkening the tones let me construct the rest of the palette as well.

A mango showing colors of red, orange, and green

I used those colors and finally settled on three themes: sunset (orange), mango wine (red), and froggy (green).

Sunset
Mango Wine
Froggy

Spacing

Mango UI works in increments of 0.5 or 0.25 rem. There are five spacings:

Squished
Tight
Cozy
Comfortable
Socially Distanced

Typically, tight spacing is used for internal paddings and cozy is used for space between components. All of the spacings are available in classes with the .{m/p}{side}-{spacing} syntax, where side is a single letter and spacing is the amount of spacing. For example mt-cozy pb-comfortable would add cozy spacing above and comfortable padding below.

Icons

The icons were designed by me and can be used with the icon icon-{name} classes. They're intended to be small, cute, and fairly round with thick strokes.

accessibility
check-circle
check
code
down-arrow
download
info-circle
left-arrow
lock
right-arrow
sparkle
up-arrow
upload
warning

Motion

All motion and transitions are timed to take 150ms to keep changes snappy and quick. Additionally, most interactive controls squish when clicked or tapped, mimicking the softness of a ripe mango. This is always a 95% scale transform. Some interactive elements don't squish since I didn't want to have to complicate the HTML markup required to achieve the squish. Additionally, to disable the squish, you can use the no-squish class, which will remove the transform.