Ethanium Design Direction

Intent

Ethanium should feel calm, capable, and unusually clear. It helps teams make complex business work easier to understand, so the interface should never add noise, decoration, or uncertainty.

This is an original design system for Ethanium. It takes inspiration from three complementary points of view:

The result is not an imitation of any of them. Apple supplies the restraint and usability standard. Katie Dill’s quality practice raises the bar for the details that earn trust. Taste Skill names the specific clichés to keep out. This does not mean copying Stripe’s visual identity. For a B2B software studio, clarity always wins when tradeoffs are required.

Design read

Every page, section, or redesign starts from one line stating what we are building. For the site as a whole:

Reading this as: a B2B custom-software studio site for operations leads and business owners, with a calm, trust-first language, leaning toward native HTML and CSS, the system font stack, and restrained motion.

If a new page reads differently (for example, a long-form case study or a campaign landing page), write its own design read before building it, and adjust the dials below on purpose rather than by drift.

Dials

Taste Skill describes layout, motion, and density as three 1-10 dials. Ethanium sits deliberately low on all three:

Dial Value What it means here
DESIGN_VARIANCE 4 Mostly regular grids. Left-aligned headings, an occasional offset or mixed aspect ratio. No masonry, no artsy empty zones.
MOTION_INTENSITY 3 Essentially static. One small entrance on the homepage, hover and focus states, nothing that loops.
VISUAL_DENSITY 3 Airy. Generous section spacing, short copy, one idea per section.

Blog and editorial pages use the same values. Raising a dial requires a written reason in the change description. Never raise one just because a pattern looks impressive.

Brand qualities

We should feel We should avoid
Clear and composed Clever or cryptic
Practical and capable Cold enterprise jargon
Polished and deliberate Glossy decoration for its own sake
Human and collaborative Casual, vague, or overly familiar
Quietly confident Loud, sales-heavy claims
Specific and real Templated, generic, “AI-made”

Core principles

  1. Start with the job to be done. Each page should make its purpose, primary action, and next step obvious without explanation.
  2. Create hierarchy before adding style. Use grouping, alignment, scale, whitespace, and contrast to establish reading order. Decoration is never a substitute for structure.
  3. Make complexity legible. Break workflows into meaningful stages and use plain labels. Show enough context for a person to move work forward.
  4. Use craft to build trust. Spacing, copy, image crops, focus states, and responsive behavior are part of the product, not polish for later. Hold details to the same standard as the main feature.
  5. Review journeys, not isolated parts. Walk a meaningful path as a visitor would: arrive, understand the offer, assess the work, and make contact. Fix the friction in that flow before adding a new component.
  6. Give the work room to speak. Portfolio screenshots and case studies are evidence. Present them cleanly, with concise context rather than competing visual effects.
  7. Reach past the defaults. If a pattern is what any generated landing page would do (eyebrow above every heading, three equal feature cards, centered hero over a gradient), assume it is wrong for us until it earns its place.

Foundations

Stack

The site is Jekyll with hand-written HTML, one stylesheet (assets/css/site.css), and one small script (assets/js/site.js). Keep it that way. Taste Skill’s React, Tailwind, Motion, and GSAP guidance does not apply here. Translate its intent into plain CSS instead:

Color

The palette is intentionally narrow and content-first. Use blue only for interactive elements (links, buttons, focus). Never use it to highlight non-interactive text: visitors read blue as “clickable” (Jakob’s Law), and keeping it rare is what makes the primary action stand out (Von Restorff Effect).

Token Value Use
--paper #fff Main page background
--white #f5f5f7 Soft section and media background
--ink #1d1d1f Primary text
--ink-soft #424245 Supporting dark text when needed
--muted #6e6e73 Secondary copy and metadata
--line #d2d2d7 Reserved; no dividers or borders use it today
--coral #06c Links, focus rings, and primary actions

Rules:

Contrast must meet WCAG 2.2 AA: at least 4.5:1 for body and small text, and 3:1 for large text (24px+, or 19px+ semibold), icons, control borders, and focus rings. --muted passes on both --paper and --white, but only just, so don’t place it on anything darker or use it for essential information.

Typography

Use the platform system stack for both headings and body copy:

-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif

This keeps the site fast, familiar, and highly legible. Headings are semibold, not extra-bold, and use tight line-height (1.08-1.2). Body copy is regular weight with comfortable line-height (1.45-1.75). Keep prose concise and prefer sentence case.

Limit reading lines to about 45-75 characters (max-width: 68ch or roughly 680px at 17px). Longer lines make the eye lose its place and add cognitive load.

Recommended hierarchy:

Element Size Weight Notes
Page hero clamp(42px, 5.5vw, 68px) 600 One idea; maximum two lines at desktop
Section heading clamp(36px, 4vw, 54px) 600 Pair with a short supporting paragraph
Card heading 20-24px 500-600 Describe the work plainly
Body 16-19px 400 Favor short paragraphs
Metadata / kicker 12-13px 400-500 Rationed (see “Kickers”); never for essential information

Text must stay readable and usable when zoomed to 200% (WCAG 1.4.4).

Type rules:

Shape

One radius system, applied everywhere:

Element Radius
Buttons, chips, hint pills Fully rounded (22px on a 44px button, 999px on chips)
Containers that need a frame (modal, media tile) 16px
Small circular markers 50%

Do not introduce square buttons, 8px cards, or a new radius without updating this table.

Space and layout

The frame follows apple.com’s measurements and breakpoints, set as tokens on :root (--content-width, --gutter, --section-pad):

Viewport Content width Section padding (top and bottom)
Above 1068px 980px (with 22px minimum gutters) 100px
735px-1068px 692px 80px
734px and below 87.5% of the viewport 60px

Blog and article pages use a 692px reading column at every size above mobile, and prose inside it follows the line-length limit above. Change the tokens, not individual sections, when the rhythm needs adjusting. Layouts must reflow at 320px wide with no horizontal scrolling (WCAG 1.4.10).

No borders or divider lines. Like Apple, separate content with whitespace and with alternating section backgrounds (--paper and --white), never with hairlines. Adjacent sections must not share a background; when a section is added or removed, re-alternate the sequence. Media tiles sit on the opposite surface to their section (white tiles on a gray section) with the 16px radius instead of an outline.

Group related things so the structure is visible at a glance (Gestalt principles):

The current system uses four columns for process steps (two below 1068px, one below 360px), two columns for case studies, and a single-column reading flow for articles. Collapse grids before their content becomes cramped, and write the narrow-screen fallback for every multi-column block in the same change, not later. Keep sections to a handful of chunks: people hold only a few items in working memory (Miller’s Law).

Layout rules borrowed from Taste Skill:

Components and behavior

The header mirrors Apple’s global nav: 44px tall, sticky, a translucent rgb(250 250 252 / 80%) background with saturate(180%) blur(20px), and no bottom border. Its content spans up to 980px with 22px side padding (16px on mobile) and does not narrow with the tablet content column. Links are 12px with -0.01em tracking, 8px horizontal padding, and a 44px tall hit area.

Limit primary navigation to the few destinations that matter, since every extra choice slows the decision (Hick’s Law). Labels should be familiar nouns or verbs (Approach, Portfolio, Contact), not marketing language. Follow conventions people already know: logo top-left linking home, navigation in the header, and Contact last, where the end of the list makes it easy to find and remember (Jakob’s Law, Serial Position Effect).

The footer mirrors Apple’s global footer: --white background, 12px text at line-height 1.33337 and -0.01em tracking in --muted, 17px top and 21px bottom padding, the same content width as the page, and no top border.

Hero

The hero is one moment, not a feature list. It must fit in the first viewport at desktop with the primary action visible without scrolling.

Kickers

A kicker is the small label above a heading (.eyebrow, .section-kicker). Generated sites put one above every section, which produces a templated rhythm.

Use one visual primary action per area. Primary buttons are blue, fully rounded, at least 44px high, the touch-target size recommended by Apple’s HIG (larger, closer targets are faster to hit, per Fitts’s Law), and their label fits on one line at desktop (three words or fewer is ideal). Every other clickable target, including text links in dense lists and close buttons, must be at least 24x24px or have equivalent spacing around it (WCAG 2.5.8). Secondary actions remain text links. Link labels should explain the destination or outcome; avoid generic labels such as “Click here” or “Learn more.”

One label per intent. Every action that leads to contacting Ethanium uses the same label across the page and the site (header, hero, sections, footer). The same applies to “see the work” actions. Two different labels for the same intent read as indecision.

Button text must pass WCAG AA contrast (4.5:1) against the button, and a pressed state may use a subtle transform: scale(0.98).

All keyboard-focusable controls must retain the visible blue focus ring:

outline: 2px solid var(--coral);
outline-offset: 4px;

A focused element must never be hidden behind a sticky header, a modal, or other overlapping content (WCAG 2.4.11). The header is sticky, so html keeps a matching scroll-padding-top: 44px.

Forms and feedback

Ask only for what’s needed to start a conversation; every extra field costs completions. Accept input in whatever format people naturally type it (Postel’s Law), for example phone numbers with or without spaces or dashes. Use visible labels (never placeholder-only), correct type and autocomplete attributes, and error messages that say what went wrong and how to fix it, placed next to the field. Confirm success clearly: the moment after someone makes contact is the end of their journey, and people remember endings strongly (Peak-End Rule).

Sections and cards

Sections should have one clear subject: a kicker is optional (and rationed), a heading is required, and supporting copy earns its place. Default content shape: a heading of about eight words or fewer, a paragraph of about 25 words or fewer, then one visual or one action.

Prefer open layouts and spacing-led groupings over boxed cards. If a card is needed, reserve it for a distinct object or action, not a way to fill empty space. When a whole card is clickable, make the entire card the target, not only its title. Shadows are rare; when one is used it is soft and low-opacity, never a hard black drop shadow.

Curate rather than list everything: a few strong case studies persuade more than many average ones, because too many options discourage people from choosing any (Choice Overload).

Images and portfolio work

Screenshots are displayed on the soft neutral surface with object-fit: contain so they are not cropped into ambiguous fragments. Use accurate, descriptive alt text. Allow only subtle hover feedback (scale(1.01)), never dramatic zooms, parallax, or autoplaying media.

When new original photography or art direction is introduced, favor one confident image with a clear focal point over a collage. Treat every image, caption, and crop as part of the visitor’s decision-making journey, keeping the portfolio informative and professional.

Motion

Motion should orient, not entertain. Every animation must answer “what does this communicate?” with one of: hierarchy, sequence, feedback, or a change of state. “It looks nice” is not an answer.

Performance

Speed is part of usability. Respond to every interaction within 400ms (Doherty Threshold) and keep pages light: optimize and size images, lazy-load anything below the fold, and avoid blocking scripts. Store images in assets/images/ as JPEG (quality ~82, at most 1440px wide, ideally under 700KB); use PNG only when an image needs transparency. Reserve space for images so content doesn’t jump while the page loads (target CLS < 0.1, LCP < 2.5s).

Content voice

Write like an experienced partner explaining a practical decision.

Accessibility and quality bar

Every addition must work with keyboard navigation, have a visible focus state, and remain understandable without color, motion, or images. Use semantic HTML first; provide meaningful alt text; preserve a logical heading order; and test at narrow widths as well as desktop.

Pre-flight check

Run this before publishing any page or material change. If one box cannot be honestly ticked, the change is not done.

Purpose and structure

Visual system

Actions and copy

Behavior and access

Journey review

For a material page or interaction change, review the path a prospective client takes rather than judging the new element in isolation:

  1. Start from the page entry point at desktop and mobile widths.
  2. Confirm the visitor can identify Ethanium’s offer, review relevant work, and find the contact action without hunting.
  3. Complete the same path with a keyboard and with reduced motion enabled.
  4. Record any friction as a specific observation, then fix the highest-impact issue before pursuing visual refinement.

This is a small-site adaptation of Katie Dill’s quality-review approach: the experience must be useful and error-free first; the extra care should make it feel trustworthy and considered.

Reference inspiration

These references guide principles, not visual copying: