SFUMATO Layout Framework
Scalable web pages made easy.
Traditional responsive websites only look great at two or three screen widths.
Websites that use SFUMATO zoom like a PDF, can stop zooming at a maximum width, and are optimized for mobile. FINALLY, developers can easily create responsive, scalable, near pixel-perfect layouts.
The SFUMATO layout framework only uses SCSS for its complete feature-set. Resize your browser window to see it in action!
Visitors love it.
Sites are fully scalable, like a PDF, including mobile layouts, in most web browsers. It just "looks right" on every screen. And web apps are more accessible for people with disabilities.
SFUMATO encourages simple, clean HTML5 markup and uses SCSS for powerful, easily managed stylesheets. SFUMATO provides coding freedom through tools not mandates.
We made CSS grids easy.
A new CSS grid-based grid system is part of the SFUMATO layout framework, allowing developers to easily structure scalable page layouts as they would with traditional responsive grid systems.
Why use CSS grid? CSS grid makes using viewport units more reliable, uses simpler CSS markup, and doesn't rely on floats and negative margins and other patterns that can make styling a layout more problematic.
You can create grids with simple HTML5 markup, using WAI-ARIA landmark roles for both accessibility, and context-based selectors.
<article role="grid"> <div role="gridcell"> <section> <p>Ricky Baker</p> </section> </div> ...
SFUMATO has advanced features.
SFUMATO leverages modern CSS features like custom properties, which allow you to create advanced user interfaces with features like real-time theming. Do you really need to support old browsers? According to W3Counter old browsers are barely being used.
Nonetheless, browser support for SFUMATO is quite broad as shown below.
- Edge 16 (October 2017)
- Chrome 57 (March 2017)
- Firefox 52 (March 2017)
- Safari 10.1 (March 2017)
- iOS Safari 10.3 (March 2017)
- Chrome 57 for Android (March 2017)
- Firefox 52 for Android (March 2017)
I'm sure the benefits of scaling web pages is clear. But why use these specific technologies?
Viewport and rem units
The most viable technique for scaling web pages is with CSS, mostly because of its low-overhead, broad support, and hardware acceleration. Of the options available within CSS, viewport units provide the best coverage of these benefits. Viewport units are used for the base fonts and rem units are used for everything else. Scaling based on rem units means your styles are often the same for various screen sizes, which means your SCSS code is smaller and easier to write.
As with scaling, the benefits of using CSS grid for our grid system centers around compatibility, functionality, and performance.
Why not use a standard float-based grid? Float-based grids are a bit wonky, especially on sites with viewport-based measurements. And floats and negative margins can create other styling dependencies. CSS grid just works.
Are there any issues?
Not really. The only issue at this time remains with Apple Safari in macOS 10.14 Mojave and below. In those versions Safari does not scale
font-size smoothly. It rounds font sizes down every half pixel, so as the font is scaled, some intermediate sizes jump to the next whole pixel size. This generally affects small text much more than large. And it can make paragraphs wrap differently on occasion. But generally speaking, it's a minor annoyance, and rarely gets in the way.
Ready to check it out?
Visit our github account and clone the repository to check it out. If you'd like to contribute to the project, we'd love to have you! Just let us know.
Need help using this?
If you need help with this or any of our other open source projects, Fynydd can consult with you to get your project moving in the right direction. Just let us know by visiting our contact page where you can reach out or talk to us directly on our free slack community.