Sickbrah is a living, ever changing and never final styleguide and pattern library for eola.co. It may or may not be up to date.
We have a Storybook for showcasing our React components.
eola was and still is discussed, designed and built on Apple MacBooks by Jaime Caballero and Dan Steele.
We use Slack, Sketch, Zeplin, Heroku, GitHub, Cloudflare and Cloudinary.
Pattern library:
We use 2 typefaces, one mainly for headings and the other for content.
Use the classes only when you want these styles. You may use straight up h1 to h6 elements anywhere for semantic reasons.
Classes may be combined to achieve multiple results. Custom buttons support inline CSS for color or background.
Use the
.c-button--iconed
modifier and put the text in a span with
.c-button__text
wrapper. Icon colour won't change with the button style. If you want the text to hide on certain scenarios, use
.is-hidden-until
or
.is-hidden-from
You can put the icon before or after the text.
Recommended button styles are outline and alternative.
You may also use the button without a label at all, although only if the former doesn't fit.
Filter should always contain the All option, and it should be the default state. Only use filter if the default view is All. The customer should then filter down. If the default view is an active state (e.g. live) but the other types are on the same hierarchy level (e.g. archived) then use tabs.
Filter is being used on the Blog and Academy to filter the posts, and is a great suit for data pages where you might wanna get more granular data.
Form elements represent a baseline only, to achieve best results please use the slightly more complete components like Field.
.c-tickbox
wrapper, and please remember to always place the
label
straight after the
input
.c-singletoggle__content
.
Now this is on a paragraph.
This is a paragraph. We can list stuff too, like errors:
.c-field
is formed by multiple elements:
.c-field__label
Constitutes the label of the field
.c-field__hint
(optional) Adds hint text for field
.c-field__content
This consistitutes the field itself. It may be combined with other classes depending on the type of field.
.c-field__error
(optional) Presents the error text in red
Combine multiple elements in new ways.
Content goes here
Content goes here
Content goes here
Content goes here
When a formsection has an action
parameter (which must be an URL), you must also pass action
state modifier.
Tables have rows, and rows have cells, and sometimes an icon. Rows can be of 3 types:
.c-table__row--header
The top level and first row, show be a series of labels for each column
.c-table__row--parent
Done for grouping regular rows
.c-table__row
The default and most common
Each row is formed by cells. Different modifiers are available. Modifiers must be used in the matching header cell.
.c-table__cell--title
is a standard solution for name of item. Adds trailing dots after a certain width.
.c-table__cell--number
is for somewhat small unitless numbers, like counts. Will center align.
.c-table__cell--amount
is for large numbers where the user may want to see a progression. Will right align.
Rows may combine into groups and parents may be set to them
Cells can be unique to mobile, tablet and desktop with the unique identifiers. Tablet applies to desktop too.
To break down pricing structures or calculations into bits.
Cards are one of the main branded components. By default, cards don't have a fixed height and take the full width of the container. You'll have to use .l-cards
to give these cards width constrains.
.c-card
component is a link, it will have a hover/focus event..c-card__frame
will vary in height depending of the card type.Rarely used by itself, but used by all cards as a baseline.
Fancy cards are the variant used when you want a poster-like appereance, with just the title of the element and a CTA, but with room in the middle to see the image.
Extends fancy card and applies different height constrains. Also adds a gradient overlay between the image and the text. Useful for user-generated images.
Content-full cards use the profile pattern. These have the image as an addition and focus on the content.
Lorem ipsum blah blah blah
We know picking a booking system to rely on is hard work. That’s why we’ve wanted to do the ground work for you, so you can focus on running your business.
![]()
Super Duper Surf School
I’m a one-man company so sometimes I get very low seasons. eola’s flexible pricing model allowed me to forget about pricing as it’s free to have!
![]()
Super Duper Surf School
I’m a one-man company so sometimes I get very low seasons. eola’s flexible pricing model allowed me to forget about pricing as it’s free to have!
eola | Trekksoft | bookingbug | Rezdy | booking hound | ||
---|---|---|---|---|---|---|
Unlimited instructors | ||||||
Unlimited instructors | ||||||
Unlimited instructors | ||||||
Unlimited instructors | ||||||
Unlimited instructors | ||||||
Unlimited instructors | ||||||
Unlimited instructors | ||||||
Unlimited instructors | ||||||
Unlimited instructors | ||||||
Unlimited instructors | ||||||
Unlimited instructors | ||||||
Loading speed on 3G mobile | 3.2 seconds | 13.2 seconds | 23.2 seconds | 33.2 seconds | 43.2 seconds | |
Conversion rate on widget | 40% | 50% | 60% | 70% | 80% | |
User experience | Terrible | Bad | Average | Good | Excellent | |