QDECR

Design system

The palette, type and components this site is built from. Switch the theme with the button at the top to see the other half.

Palette

From FreeSurfer's overlay colours, as in the logo: the cool end of the scale, blue to teal, is the accent for links and buttons; the heat end, orange, is kept for the brand and the focus ring and is never text on a light page. Code sits on the logo's black in both themes.

Neutrals

  • --paper#f7f5f0 · #0d0f12
  • --surface#fffdf9 · #15181c
  • --sunken#ece8df · #1d2126
  • --ink#17191d · #ebe7de
  • --muted#575b63 · #a3a7ae
  • --rule#dcd6ca · #2b3036

Accent

  • --accent#15627c · #63b9d2
  • --accent-strong#0e4a5e · #8fd0e2
  • --accent-soft#e1edf0 · #142c35
  • --on-accent#fbfaf7 · #0d0f12

Heat

  • --brand#ff7a1c · #ff7a1c
  • --heat#c4520a · #ff7a1c

Callouts

  • --tip#1c6a50 · #5ccaa5
  • --tip-bg#e0efe8 · #11281f
  • --warn#9a4700 · #ffa35a
  • --warn-bg#fbe9d9 · #2c1c0e

Code

  • --code-bg#101317 · #050608
  • --code-ink#e8e4da · #e8e4da
  • --code-muted#949ba4 · #949ba4
  • --syntax-keyword#ff8a3d · #ff8a3d
  • --syntax-string#3cc3a2 · #3cc3a2
  • --syntax-number#ffb14e · #ffb14e
  • --syntax-function#72a9ef · #72a9ef

Other

  • --poster-bg#000000 · #000000
  • --on-poster#ffffff · #ffffff

Contrast

Every pairing the site paints, measured in both themes. Text needs 4.5:1 (WCAG AA); the focus ring needs 3:1 against what it sits on. A test holds the stylesheet to this table on every run.

SamplePairingUsed forLightDarkNeeds
Aa--ink on --paperbody text16.1515.554.5
Aa--ink on --surfacetext on a raised panel17.3214.434.5
Aa--ink on --sunkeninline code14.3913.114.5
Aa--muted on --papercaptions, the footer, secondary text6.257.954.5
Aa--muted on --surfacesecondary text on a raised panel6.717.374.5
Aa--muted on --sunkensecondary text on a sunken panel5.576.704.5
Aa--accent on --paperlinks and secondary buttons6.288.594.5
Aa--accent on --surfacelinks on a raised panel6.737.974.5
Aa--accent on --sunkenlinks on a sunken panel5.597.244.5
Aa--accent-strong on --papera link on hover8.9211.234.5
Aa--accent-strong on --accent-softa secondary button on hover8.148.534.5
Aa--accent on --accent-softthe current page in navigation, links in a note5.726.524.5
Aa--muted on --accent-soft"Previous" and "Next" on a hovered page link5.706.034.5
Aa--on-accent on --accentprimary button text6.558.594.5
Aa--on-accent on --accent-strongprimary button text on hover9.3211.234.5
Aa--ink on --accent-softthe body of a note14.7311.814.5
Aa--tip on --tip-bgthe label of a tip5.487.754.5
Aa--ink on --tip-bgthe body of a tip14.8212.634.5
Aa--accent on --tip-bglinks in a tip5.766.984.5
Aa--warn on --warn-bgthe label of a warning5.428.314.5
Aa--ink on --warn-bgthe body of a warning14.8813.304.5
Aa--accent on --warn-bglinks in a warning5.787.354.5
Aa--code-ink on --code-bgcode14.6715.974.5
Aa--code-muted on --code-bgcomments, R output, the language label6.647.224.5
Aa--syntax-keyword on --code-bgkeywords and operators in code7.948.644.5
Aa--syntax-string on --code-bgstrings in code8.449.194.5
Aa--syntax-number on --code-bgnumbers and constants in code10.3311.254.5
Aa--syntax-function on --code-bgfunction names in code7.668.344.5
--heat on --paperthe focus ring4.237.363
--heat on --surfacethe focus ring on a raised panel4.536.833
--heat on --sunkenthe focus ring on a sunken panel3.776.203
--heat on --code-bgthe focus ring inside a code block4.047.773
Aa--on-poster on --poster-bgthe home page viewer's button on the poster21.0021.004.5
--heat on --poster-bgthe focus ring on the poster and the 3D viewer4.568.053

Type

Newsreader, the logo's wordmark, for headings. IBM Plex Sans for text, and IBM Plex Mono for code, where most of a docs page's attention goes. All three are served from this site.

Vertex-wise statistics

Heading one, the page title

Heading two, a section

Heading three, a subsection

Heading four, a run-in label

A lead paragraph opens a page in a larger, quieter voice.

Body text is set in Plex Sans at 17px on a 1.65 line, held to a measure of about 75 characters. It has strong and emphasised words, alink within the page, and inline code such asqdecr_fastlm() or n_cores = 4. Press Tab to see the focus ring.

Small, muted text: captions, the footer, secondary detail.

Buttons and links

Buttons lead to the site's own pages. Links that leave the site carry an arrow, or are an icon.

QDECR on GitHub

Callouts and badges

0.9.0stableGPL-3

Code

Highlighted by Shiki at build time into classes the stylesheet colours, so nothing is written inline. The copy button leaves R's output lines behind.

R
library(QDECR)

# Cortical thickness against age and sex, left hemisphere
vw <- qdecr_fastlm(qdecr_thickness ~ age + sex,
                   data = pheno,
                   id = "subject",
                   hemi = "lh",
                   n_cores = 4)

mean(c(2.4, 2.6))
#> [1] 2.5
Shell
# FreeSurfer's environment, before starting R
export FREESURFER_HOME=/usr/local/freesurfer
source "$FREESURFER_HOME/SetUpFreeSurfer.sh"

Tables and figures

ArgumentDefaultWhat it sets
fwhm10Smoothing, in mm
mcz_thr0.001Cluster-forming threshold
cwp_thr0.025Cluster-wise p threshold
The QDECR logo: a black triangle with glowing orange edges on a blue-to-teal triangular lattice, in an orange-bordered hexagon.
A figure with a caption. The logo is the one place the site uses glow.