This post outlines the core visual styles and components used throughout the website, primarily based on the styles.css file and demonstrated in styles.html.
Colors
The website utilizes a specific color palette defined using CSS variables.
Primary Colors:
--color-1: hsla(222, 88%, 33%, 1) - A strong blue, used for links.--color-2: hsla(358, 65%, 46%, 1) - A distinct red, often used for hover states or accents.
Grayscale:
A wide range of gray shades are defined, from --color-black (#000000) to --color-white (#ffffff), with numbered grays in between (e.g., --color-gray-1 to --color-gray-19).
- Text: Default text uses
--color-text(var(–color-gray-16)). Dark text is--color-text-dark(black), and light text is--color-text-light(var(–color-gray-7)). - Background: The main background is
--color-bg(var(–color-gray-1)).
Feedback Colors:
Used for alert boxes:
- Error:
--color-error(background),--color-error-content(text) - Success:
--color-success(background),--color-success-content(text) - Info:
--color-info(background),--color-info-content(text) - Notice:
--color-notice(background),--color-notice-content(text)
Typography
Three main font families are imported and used via CSS variables:
--font-1: “Inter”, sans-serif (Primary UI and body font)--font-2: “DM Serif Text”, serif (Used for H1-H5 headings)--font-3: “DM Serif Display”, serif (Used for large display text, like the hero section heading)--font-mono: Consolas, Monaco, monospace (Used for<code>and<pre>tags)
Type Scale (Base Size: 1.8rem)
Headings (h1 to h6) and helper classes (.h1 to .h6) follow a defined scale:
h1,.h1:--text-display-1(approx 53.75px)h2,.h2:--text-xxl(approx 37.32px)h3,.h3:--text-xl(approx 31.10px)h4,.h4:--text-lg(approx 25.92px)h5,.h5:--text-md(approx 21.60px)h6,.h6:--text-sm(approx 15.00px), uppercase, letter-spacing
Paragraph text uses --text-size (1.8rem).
Lead paragraphs (.lead) use --text-md (approx 21.60px) with a lighter font-weight (300).
<h1>H1 Heading.</h1>
<h2>H2 Heading.</h2>
<h3>H3 Heading.</h3>
<h4>H4 Heading.</h4>
<h5>H5 Heading.</h5>
<h6>H6 Heading.</h6>
<p class="lead">This is a lead paragraph example.</p>
<p>This is a standard paragraph.</p>
Text Elements
Paragraphs, Links & Inline Styles
Standard HTML tags for text formatting are styled accordingly.
<p>
This is a paragraph with <a href="#">a link</a>,
<abbr title="Example Abbreviation">abbrebation</abbr>,
<strong>strong text</strong>, <em>em text</em>,
<del>deleted text</del>, and
<mark>this is a mark text.</mark>
Inline code looks like this: <code>.code</code>.
</p>
Image Alignment
Use helper classes to float images within text content.
<p>
<img width="120" height="120" class="h-pull-left"
alt="sample-image" src="images/sample-image.jpg">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit...
</p>
Drop Caps
Add the .drop-cap class to a paragraph to style the first letter as a drop cap.
<p class="drop-cap">
Far far away, behind the word mountains, far from the countries...
</p>
Small Print
Use the <small> tag for less important text.
<p><small>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</small></p>
Quotes
Pull Quotes
Use the pull-quote class on a figure element containing a blockquote.
<figure class="pull-quote">
<blockquote>
<p>
When you look in the eyes of grace... it will not motivate you to sin.
It will motivate you to righteousness.
</p>
<footer>
<cite>Judah Smith</cite>
</footer>
</blockquote>
</figure>
Block Quotes
Standard <blockquote> elements are styled with optional cite in the footer.
<blockquote cite="http://where-i-got-my-info-from.com">
<p>
For God so loved the world, that he gave his only Son...
</p>
<footer>
<cite><a href="#0">John 3:16-17 ESV</a></cite>
</footer>
</blockquote>
Lists
Ordered & Unordered Lists
Standard <ol> and <ul> lists are styled. Unordered lists default to disc bullets. Nested lists are supported.
<ol>
<li>Here is an example</li>
<li>of an ordered list.</li>
<li>
A parent list item.
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</li>
<li>A list item.</li>
</ol>
<ul class="disc"> <!-- Default style, class optional -->
<li>Here is an example</li>
<li>of an unordered list.</li>
</ul>
Definition Lists
Use <dl> with the .dictionary-style class for term/definition pairs.
<dl class="dictionary-style">
<dt><strong>This is a term</strong></dt>
<dd>this is the definition of that term...</dd>
<dt><strong>Another Term</strong></dt>
<dd>And it gets a definition too...</dd>
<dd>This is a 2<sup>nd</sup> definition...</dd>
</dl>
Skill Bars
Use the .skill-bars class on a <ul> with specific <li> structures.
<ul class="skill-bars">
<li>
<div class="progress percent90"><span>90%</span></div>
<strong>HTML</strong>
</li>
<li>
<div class="progress percent85"><span>85%</span></div>
<strong>CSS</strong>
</li>
<!-- etc. -->
</ul>
Buttons
Buttons have a base style (.btn, button, input[type="submit"]) and modifiers.
- Base: Gray background (
--color-btn), black text (--color-btn-text). Hover changes to black background (--color-btn-hover) and white text (--color-btn-hover-text). Height is--vspace-btn(approx 6.4rem). - Primary (
.btn--primary): Black background (--color-btn-primary), white text. Hover uses a darker gray (--color-btn-primary-hover). - Stroke (
.btn--stroke): Transparent background, black border and text. Hover fills with black background and white text. - Sizes:
.btn--small,.btn--medium,.btn--largeadjust height (not explicitly shown instyles.htmlexample, but defined in CSS). - Full Width (
.h-full-width): Makes the button take up 100% of its container width.
<!-- Standard Button -->
<a class="btn h-full-width" href="#0">Default Button</a>
<!-- Primary Button -->
<a class="btn btn--primary h-full-width" href="#0">Primary Button</a>
<!-- Stroke Button -->
<a class="btn btn--stroke h-full-width" href="#0">Stroke Button</a>
<!-- Used in forms -->
<input class="btn--primary h-full-width" type="submit" value="Submit">
Grid System
The layout uses a flexbox-based grid system.
- Rows are defined by the
.rowclass. - Columns are defined by the
.columnclass. - Widths are controlled by responsive classes like
.large-6(50% width on large screens),.medium-4(33.3% on medium screens),.tab-12(100% on tablets),.mob-12(100% on mobile), etc. Combining classes allows for different layouts at different breakpoints (e.g.,.large-3 .tab-6 .mob-12). - Block grids (e.g.,
.block-large-1-3) create equally sized columns within a row (not shown instyles.htmlexample, but available).
<!-- Example: Two equal columns on large screens, full width on mobile -->
<div class="row">
<div class="column large-6 mob-12">
<p>Column 1 Content...</p>
</div>
<div class="column large-6 mob-12">
<p>Column 2 Content...</p>
</div>
</div>
<!-- Example: Four equal columns on large, two on tablet, full on mobile -->
<div class="row">
<div class="column large-3 tab-6 mob-12">
<p>Column A</p>
</div>
<div class="column large-3 tab-6 mob-12">
<p>Column B</p>
</div>
<div class="column large-3 tab-6 mob-12">
<p>Column C</p>
</div>
<div class="column large-3 tab-6 mob-12">
<p>Column D</p>
</div>
</div>
Spacing
Vertical spacing is managed using CSS variables based on --space (3.2rem).
- Examples:
--vspace-1(3.2rem),--vspace-0_5(1.6rem),--vspace-2(6.4rem), etc. - Margins and padding are applied to elements like paragraphs (
<p>), lists (<ul>,<ol>), headings, sections, etc., using these variables (e.g.,margin-bottom: var(--vspace-1);). Spacing helper classes (e.g.h-add-bottom) might also be used.
Media
Responsive Images
Use <img> with srcset and sizes attributes for responsive images. Optional <figcaption> can be added within a <figure>.
<figure>
<img
src="images/sample-525.jpg"
srcset="
images/sample-1050.jpg 1050w,
images/samaple-525.jpg 525w
"
sizes="(max-width: 1050px) 100vw, 1050px"
alt="Description of image"
/>
<figcaption>Here is some random picture.</figcaption>
</figure>
Responsive Video
Wrap embedded video (like <iframe>) in a div with the class .video-container.
<div class="video-container">
<iframe
src="https://player.vimeo.com/video/14592941?color=00a650"
width="500" height="281" frameborder="0"
allowfullscreen>
</iframe>
</div>
Tables
Use standard HTML table markup (<table>, <thead>, <tbody>, <tr>, <th>, <td>). Wrap the table in a div with class .table-responsive for horizontal scrolling on smaller screens.
<div class="table-responsive">
<table>
<thead>
<tr>
<th>Name</th>
<th>Age</th>
<th>Sex</th>
<th>Location</th>
</tr>
</thead>
<tbody>
<tr>
<td>William J. Seymour</td>
<td>34</td>
<td>Male</td>
<td>Azusa Street</td>
</tr>
<tr>
<td>Jennie Evans Moore</td>
<td>30</td>
<td>Female</td>
<td>Azusa Street</td>
</tr>
</tbody>
</table>
</div>
Forms
Standard form elements are styled. Use helper classes like .h-full-width for layout control. Custom select dropdowns use the .ss-custom-select wrapper.
<form>
<div>
<label for="sampleInput">Your email</label>
<input class="h-full-width" type="email" placeholder="test@mailbox.com" id="sampleInput">
</div>
<div>
<label for="sampleRecipientInput">Reason for contacting</label>
<div class="ss-custom-select">
<select class="h-full-width" id="sampleRecipientInput">
<option value="Option 1">Questions</option>
<option value="Option 2">Report</option>
<option value="Option 3">Others</option>
</select>
</div>
</div>
<label for="exampleMessage">Message</label>
<textarea class="h-full-width" placeholder="Your message" id="exampleMessage"></textarea>
<label class="h-add-bottom">
<input type="checkbox">
<span class="label-text">Send a copy to yourself</span>
</label>
<input class="btn--primary h-full-width" type="submit" value="Submit">
</form>
Components
Alert Boxes
Use div elements with .alert-box and modifier classes (.alert-box--error, .alert-box--success, .alert-box--info, .alert-box--notice). A close button is included.
<div class="alert-box alert-box--error">
<p>Error Message. Your Message Goes Here.</p>
<span class="alert-box__close"></span>
</div>
<div class="alert-box alert-box--success">
<p>Success Message. Your Message Goes Here.</p>
<span class="alert-box__close"></span>
</div>
<div class="alert-box alert-box--info">
<p>Info Message. Your Message Goes Here.</p>
<span class="alert-box__close"></span>
</div>
<div class="alert-box alert-box--notice">
<p>Notice Message. Your Message Goes Here.</p>
<span class="alert-box__close"></span>
</div>
Pagination
Use the .pgn class on a <nav> element containing a <ul> list of pagination links. Use specific classes for previous/next links, current page, and number links.
<nav class="pgn">
<ul>
<li><span class="pgn__prev" href="#0"> Prev </span></li>
<li><a class="pgn__num" href="#0">1</a></li>
<li><span class="pgn__num current">2</span></li>
<li><a class="pgn__num" href="#0">3</a></li>
<li><span class="pgn__num dots">…</span></li>
<li><a class="pgn__num" href="#0">8</a></li>
<li><span class="pgn__next" href="#0"> Next </span></li>
</ul>
</nav>
Stats Tabs
Use the .stats-tabs class on a <ul> containing <li><a> elements.
<ul class="stats-tabs">
<li><a href="#0">1,234 <em>Peter</em></a></li>
<li><a href="#0">567 <em>James</em></a></li>
<li><a href="#0">23,456 <em>John</em></a></li>
<!-- etc. -->
</ul>
Code Blocks
Use <pre> and <code> tags for displaying blocks of code. Add language classes (e.g., language-css) for potential syntax highlighting.
<pre><code class="language-css">
code {
font-size: 1.4rem;
margin: 0 .2rem;
padding: .2rem .6rem;
white-space: nowrap;
background: #F1F1F1;
border: 1px solid #E1E1E1;
border-radius: 3px;
}
</code></pre>
This guide covers the most common styles and components demonstrated in styles.html. Refer to css/styles.css for the complete styling implementation.
