Use the below structure when creating new pages:
.page wrapper
—.nav
—.section
——.container
———.component
—.footer
Below are some global resets we like to use. Typically this is a custom code symbol that features on every page.
<style>
/*---GLOBAL---*/
html {
text-rendering: optimizeLegibility;
font-size: 16px;
overflow-x: hidden;
-moz-osx-font-smoothing: grayscale;
font-smoothing: antialiased;
-webkit-font-smoothing: antialiased;
}
/*---WEBFLOW RESETS---*/
a {
color:inherit;
text-decoration:none;
}
input[type=text] {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
input[type=email] {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
input[type=textarea] {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
.w-dropdown-toggle {
color:inherit;
text-decoration:none;
}
.w-nav-link {
color:inherit;
}
.w-nav-link.w--current {
color:inherit;
}
</style>
.heading-10 , .heading-20, .heading-30, .heading-40 , .heading-50, .heading-60
.text-10 , .text-20, .text-30, .text-40 , .text-50, .text-60
We classify Interface text as short amounts of text and labels which help the user understand and use the website.
Interface text's font-family, font-size and font-weight (labels, headers, footers) is declared at a component level.
.footer component
—.footer title
——.text block
In the above example we would change the typography styles of the "footer title" div. This means the text nested inside would inherit these styles.
The units we use for our typography depend on what type of website we're building. We generally build two types of websites.
If you're building a fluid website use a mix of em and rem units. Use em units for larger headings and rem units for smaller paragraphs. This method ensures the paragraph text doesn't become too small between breakpoints.
If you're building a responsive website use pixel or rem units for all typography.
.F0 , .F1 , .F2, .F3, .F4
Background Fill Colour:
.F1
Text Colour Variants:
.F1 T-A, .F1 T-B, .F1 T-C
If background fill is:
.F2
Text link class could be:
.text-link .on--F2 .A
Use global sections whenever possible. When custom vertical padding, interactions or other styles need to be applied to a section create a custom section class instead. For Example .component-name section
.is--xsm , .is--sm , .is--md, .is--lg, .is--xlg
Use global container whenever possible. When custom max-width is required create a custom container class instead. For Example .component-name container
.is--xsm , .is--sm , .is--md, .is--lg, .is--xlg
.is--sm , .is--md, .is--lg, .is--xlg
.is--ghost
.is--A .is--B .is--C .is--D
Below is a full example of this application.
.button .is--sm .on--F1 .is--A
Use the following structure when creating forms.
.form wrapper
—.form list
——.form item
———.form item label
————text block
———.form field
——.form item
———.form item label
————text block
———.form field
——.form item
———.form submit button
Add vertical margins to the .form item class to seperate each field set.
Always export imagery @2x the actual pixel dimensions.
Area size
1440x800 pixels
Image size
2880x1600 pixels
All imagery should be uploaded to Webflow as .WebP format.
As a general rule try to keep all imagery under 500KB each. Take advantage of the native WebP 'lossy' compression and set the image quality somewhere between 70-100.
All icons should be embeded in Webflow as an .svg with the fill or stroke property set as 'current-colour'. You can find a full suite of common svg icon logos here.
Set the width and height for each icon. Usually icons display best at certain pixel sizes. These are commonly 16x16, 24x24, 32x32, 64x64, 128x128 etc.