Goals
Like any good framework should, this framework aims to be:
-
Accessible
- it should work with screen readers
- it should be easy to navigate with a keyboard
- the color scheme should be high contrast
- the text should be readable
- interactive elements should be easy to click/tap
- it should be obvious whether or not an element is interactive
- it should work regardless of zoom level
- it should be valid HTML
- it should be printer-friendly
-
Responsive
- it should work on all modern operating systems
- it should work on all modern browsers
- it should work on wide screens, desktops, laptops, tablets, and mobile devices
- it should still work if the window is resized to a non-standard size
- it should work in portrait and landscape mode
This framework also aims to be:
-
Simple
- it requires no resources other than a single CSS and a single JS file (ie. no images or fonts)
- it applies the minimum amount of styles necessary
- it allows easy overriding of CSS (ie. few nested selectors)
- it requires no extraneous HTML markup
-
Predictable
- it uses BEM
-
Customizable
- is uses !default SCSS variables whenever possible and logical
- it allows excluding components that aren't being used
It doesn't meet all of these goals yet, but it's getting there.