Design System: The Scholar’s Desk

1. Overview

Creative North Star: “The Scholar’s Desk”

Nothing on this page performs; everything is load-bearing. The system is built for a single, recurring visitor moment — someone landing from a citation, a conference program, or a referral, scanning quickly for who this person is, what they’ve published, and how to reach them. Density is low, whitespace is generous, and the one accent color is spent almost entirely on links and interactive state — never on decoration.

This inherits al-folio’s stock Bootstrap/MDB foundation nearly unmodified: flat surfaces by default, and Material-derived elevation (z-depth-*) used sparingly and only where it has a real job — the profile photo, a publication thumbnail. The system explicitly rejects marketing-site register: no hero sections, no gradient accents, no card-grid feature tiles, no big CTAs. A visitor should never wonder whether they landed on a product or a person’s record of work.

One deliberate departure from the original al-folio/MDB default: Public Sans replaces Roboto as the site’s single typeface, and headings carry real weight (600–700) instead of MDB’s stock thin-300 Material look. Roboto was a framework default inherited unmodified, not a chosen brand voice — indistinguishable from any Bootstrap/MDB site — and thin-300 headings gave “display” and “headline” almost no weight contrast against 400 body text. Public Sans (designed for U.S. federal government communications, built for clarity in official documents) reads as credential-forward and authoritative without introducing a second family or any color/decoration — it’s still a One-Typeface system, just a more deliberate and more confident one.

Key Characteristics:

2. Colors

A near-monochrome page (black ink on white paper) with a single accent that swaps hue between light and dark mode rather than just inverting lightness.

Primary

Neutral

Named Rules

The One Accent Rule. Exactly one non-neutral color is live on the page at any time (Academic Violet or Night Cyan, never both). It marks interactivity — links, hover, active nav — and nothing else. Category badges, buttons, and borders stay neutral.

3. Typography

Body Font: Public Sans (weights 400–700, italic 400), loaded via Google Fonts (_config.yml’s google_fonts.url.fonts), with a system sans-serif fallback (-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif) applied via --global-font-family in _sass/_base.scss.

Character: One typeface carries the whole page. Hierarchy is built entirely from weight and size, not from a display/body pairing. Public Sans was chosen over Roboto (the inherited MDB/Bootstrap default) because it’s designed for clarity in official/institutional documents — it reads as credential-forward and authoritative rather than as generic SaaS/startup type, without breaking the single-family system. Roboto and Roboto Slab are no longer loaded.

Hierarchy

Named Rules

The One-Typeface Rule. Every weight on the page is Public Sans. If a new component needs a second typeface to feel distinct, that’s a sign it doesn’t belong on this page.

The Weight-Carries-Authority Rule. Display and Headline are set in 700/600, not a thin Material-style 300 — a deliberate correction from the original MDB default, which gave headings almost no weight contrast against 400 body text. Confidence comes from weight, not from color or size alone.

4. Elevation

Flat by default. Shadow is structural, not ambient — it appears only on the two places where a raised surface has a real physical read: the circular profile photo and publication preview thumbnails. Everywhere else (buttons, badges, nav, cards) is explicitly flattened.

Shadow Vocabulary

Named Rules

The Flat-By-Default Rule. MDB’s Material components ship a shadow by default; this system turns it off everywhere except the photo and thumbnails. If a new button or card looks “lifted,” it’s wrong — flatten it with z-depth-0.

5. Components

Buttons

Badges

Cards / Containers

News List (signature component)

A borderless table (table-sm table-borderless), not a card list — each row is a date (left column, 20% width) and an announcement (right column, may contain inline links). On the About page it’s capped at a fixed height (320px) with overflow-y: auto once there are more than 3 items; the full, uncapped list lives at /news/. No dividers between rows, no shadow, no card wrapper — it reads as a dense reading list, not a UI widget.

6. Do’s and Don’ts

Do:

Don’t: