Living reference for mhmdaskari.github.io. Design tokens are defined in
assets/css/tokens.css — the single source of truth. Components below are styled by
assets/css/main.css (Dimension template) and assets/css/styles.css (custom
CV, blog, and opened-window refinements). To re-theme the site, edit a token and reload.
Color tokens
Values are read live from :root via getComputedStyle.
Backgrounds
--color-bg
--color-bg-alt
--color-bg-overlay
Foreground / text
--color-fg
--color-fg-bold
--color-fg-light
--color-fg-faint
Borders
--color-border
--color-border-bg
--color-border-bg-alt
Custom-component surfaces & lines
--color-surface-1
--color-surface-2
--color-line-subtle
--color-line-soft
--color-line-muted
--color-line-timeline
--color-line-blog
--color-line-blog and --color-fg-faint are off-palette (light grays inherited from the original blog styling).
Opacity steps
--opacity-mutedThe quick brown fox
--opacity-softThe quick brown fox
--opacity-mediumThe quick brown fox
--opacity-strongThe quick brown fox
Typography
Family · weights 300 / 600.
Type scale
--text-h1
Heading 1
--text-h2
Heading 2
--text-h3
Heading 3
--text-h4
Heading 4
--text-h5
Heading 5
--text-h6
Heading 6
Body & inline
Body copy at 1rem, line-height . This is strong,
this is emphasized, this is a link, and this is inline
code set in .
Spacing & radius
Spacing / sizing
--space-element
--size-element-height
Radius & border width
--radius ()
--radius-small ()
--border-width ()
Motion
Hover the box — it transitions over --duration-transition.
--duration-transition
--duration-bg
--duration-intro
--duration-article
Text
This is bold and this is strong. This is italic and this is
emphasized. This is superscript text and this is subscript text.
This is underlined and this is code: for (;;) { ... }. Finally, this is a link.
Blockquote
Fringilla nisl. Donec accumsan interdum nisi, quis tincidunt felis sagittis eget tempus euismod.
Vestibulum ante ipsum primis in faucibus vestibulum.
Preformatted
i = 0;
while (!deck.isInOrder()) {
print 'Iteration ' + i;
deck.shuffle();
i++;
}
ul.icons · a.ai.ai-* (no .icon class, matching the site)
Images
span.image.fit
The .image.left variant floats with the surrounding text wrapping to its right, while
.image.fit spans the full content width. Lorem ipsum dolor sit amet, consectetur adipiscing
elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.
span.image.left
Box
A bordered .box container with standard padding. Useful for grouping related content.
.box
The .box.alt variant drops the border, padding, and radius.
.box.alt
Custom — opened article window
Production target: #main article. The visual scrollbar is injected and positioned by assets/js/main.js, while sizing, fade, and mobile scroll containment live in assets/css/styles.css.
Popup panel reference
This represents the active Dimension article panel used for About, CV, Projects, Blog, and Contact.
Native article scrollbars are visually transparent so content does not shift when the scrollbar appears.
The custom .article-scrollbar fades in on hover, wheel, touch swipe, or scroll.
On mobile, body.is-article-visible locks the outer page after the opening phase, letting the article own the scroll.
Markup generated by assets/js/blog.js, styled by assets/css/styles.css.
2025-10-03
An example blog post
This is the body text of a blog post. Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.