Additional Guidelines
CSS Layout
File Layout
Current site has separate CSS files for each section type. Either use these or the included Bootstrap file which has been re-compiled to match the sites color palette. Don't worry about bundling or minifying, that will be automated later.
There is an existing file normalize-stylesheet.css that brings in an adapted version of normalize. Do not bring in any other libraries (e.g. tailwind). Do not copy/paste from third party products.
CSS Language
Use Vanilla CSS as our continuous deployment pipeline does not support LESS, SASS, or similar. Use spaces and not tabs, and indent at 2 spaces.
Do not modify the Bootstrap file nor link to external bootstrap files.
CSS Variables
There are a large number of CSS variables that are defined and used across the entire system. See the file variables-stylesheet.css file for a complete list. Alternatively, use the bootstrap variables.
CSS Colors
Our system handles a palette that our sites are constrained to. Use these as CSS variables throughout templates and do not use hard-coded colors.
CSS Layers
Put all new and/or modified CSS inside layers, the layers are already defined and no effort should be necessary.
Responsive Layout
All templates should be considered mobile first. 84% of our users are access sites from mobile devices. For the other 16% have a reasonably good desktop layout. For example the default template stacks images with text side by side and alternates images from left to right on the screen for each section. The hamburger menu goes away and is replaced with a horizontal menu (first few items then a more... menu).
Please ensure both work and use the break at 801px. (Note this is not a variable and needs to be hard coded whenever used).
JavaScript
JavaScript is used for some mechanism like showing/hiding alerts and handling FAQ interactions. Feel free to add additional JavaScript functions by creating new JavaScript files. In general, all the JavaScript for a single section should go into a JavaScript file for that section. E.g. faq-javascript.js.
Image Files
Some guidelines for adding images:
- Add to the /img directory; feel free to overwrite existing images.
- Best judgement on PNG versus JPG on a case by case basis.
- Wherever possible, prefer the use of SVG files for vector graphics.
- For monochrome SVG (e.g. simple icons) use a SVG with no color information then style with CSS fill attribute. Our deployment system will automatically inline these SVGs; for the static site include the file in /img and go ahead and inline the SVG to demonstrate CSS fill.
- Feel free to use Bootstrap Icons or the full fontawesome.com library for icons. Either provide use with names of icons you'd like or do a screenshot and embed a janky PNG instead and we'll backfill with properly licensed SVGs.
The menus are dynamically generated and the number of menu items in the sample are not fixed. Plan on up to 12 menus in the header and another 12 in the footer. More menus should be supported, assume up to 40. As the number of menus gets large the system should stay functional, but some UI elements might have to slip. For example, adding a scrollbar.