diff --git a/markdoc.config.mjs b/markdoc.config.mjs index faa11db..d4b2233 100644 --- a/markdoc.config.mjs +++ b/markdoc.config.mjs @@ -1,6 +1,12 @@ -import { defineMarkdocConfig, component } from '@astrojs/markdoc/config'; +import { defineMarkdocConfig, component, nodes } from '@astrojs/markdoc/config'; export default defineMarkdocConfig({ + nodes: { + table: { + ...nodes.table, + render: component('./src/components/markdoc/Table.astro'), + }, + }, tags: { ElementSymbol: { render: component('./src/components/content/ElementSymbol.astro'), diff --git a/src/components/content/ElementSymbol.astro b/src/components/content/ElementSymbol.astro index 160a42c..feae746 100644 --- a/src/components/content/ElementSymbol.astro +++ b/src/components/content/ElementSymbol.astro @@ -58,6 +58,8 @@ const symbol = entry?.data.symbol as Symbol | undefined; display: inline-block; line-height: 1; vertical-align: middle; + text-align: center; + width: 100%; } .svg { display: inline-flex; diff --git a/src/components/layout/CMDPalette/CMDPalette.module.css b/src/components/layout/CMDPalette/CMDPalette.module.css index 994fce2..082d430 100644 --- a/src/components/layout/CMDPalette/CMDPalette.module.css +++ b/src/components/layout/CMDPalette/CMDPalette.module.css @@ -1,89 +1,86 @@ .trigger { @mixin ml auto; + @mixin typo_body; cursor: pointer; display: flex; - gap:var(--ui-spacing-comfortable); + gap: var(--size-4); align-items: center; - padding: var(--ui-spacing-snug) var(--ui-spacing-spacious); + padding: var(--size-1) var(--size-3); border: var(--size-px) solid var(--color-border-normal); font-family: var(--font-mono); - font-size: var(--ui-typo-size-md); - color: var(--text-color-disabled); + color: var(--color-text-disabled); - background: var(--color-palette-charcoal-gray); + background: var(--color-surface-elevated-2); transition: border-color 0.15s, color 0.15s; &:hover { - border-color: var(--color-text-inverse); - color: var(--color-text-inverse); + border-color: var(--color-border-strong); + color: var(--color-text-primary); } & .kbd { - padding: var(--ui-spacing-hairline) var( --ui-spacing-cozy); - border: var(--size-px) solid var(--color-border-normal); - border-radius: var(--size-05); + @mixin typo_code; - font-family: var(--font-mono); - font-size: var(--ui-typo-size-xs); - - background: var(--color-surface-inverse); + padding: var(--size-px) var(--size-1); + border: var(--size-px) solid var(--color-border-strong); + border-radius: var(--size-1); } } .backdrop { position: fixed; - z-index: 99; + z-index: var(--z-modal); inset: 0; background: var(--color-overlay-heavy); } .palette { position: fixed; - z-index: 100; + z-index: calc(var(--z-modal) + 1); top: 20%; left: 50%; transform: translateX(-50%); - width: min(var(--size-128), 90vw); - padding: var(--ui-spacing-tight); - border: var(--size-05) solid var(--color-primary); + width: min(36rem, 90vw); + padding: var(--size-1); + border: var(--size-1) solid var(--color-primary); - background: var(--color-surface-inverse); + background: var(--color-surface-base); box-shadow: - 0 0 0 var(--size-px) var(--color-border-strong), - var(--size-1) var(--size-1) 0 var(--color-surface-inverse); + 0 0 0 var(--size-px) var(--color-surface-base), + var(--size-4) var(--size-4) 0 var(--color-surface-base); } .header { - @mixin px var(--ui-spacing-generous); - @mixin border-b var(--size-px), solid, var(--color-border-strong); + @mixin px var(--size-7); display: flex; - gap: var(--ui-spacing-comfortable); + gap: var(--size-4); align-items: center; + border-bottom: var(--size-px) solid var(--color-border-strong); & .icon { font-family: var(--font-mono); - font-size: var(--ui-typo-size-lg); + font-size: var(--type-1); font-weight: 900; - color: var(--color-text-disabled); + color: var(--color-primary); } & .input { - @mixin py var(--ui-spacing-generous); + @mixin py var(--size-5); flex: 1; border: none; font-family: var(--font-mono); - font-size: var(--ui-typo-size-lg); - color: var(--color-text-inverse); + font-size: var(--type-1); + color: var(--color-text-primary); background: transparent; outline: none; @@ -94,51 +91,54 @@ } & .esc { + @mixin px var(--size-2); + font-family: var(--font-mono); - font-size: var(--typo-size-xs); + font-size: var(--type--2); color: var(--color-text-disabled); } } .results { overflow-y: auto; - max-height: var(--size-96); + max-height: 22.5rem; & .groupLabel { - padding: var(--ui-spacing-relaxed) var(--ui-spacing-generous) var(--ui-spacing-snug); + padding: var(--size-5) var(--size-7) var(--size-2); - font-size: var(--ui-typo-size-2xs); + font-family: var(--font-mono); + font-size: var(--type--3); font-weight: 700; color: var(--color-text-disabled); text-transform: uppercase; - letter-spacing: var(--spacing-loosest); + letter-spacing: 0.2em; } & .result { cursor: pointer; display: flex; - gap: var(--ui-spacing-relaxed); + gap: var(--size-5); align-items: center; - padding: var(--ui-spacing-comfortable) var(--ui-spacing-generous); + padding: var(--size-4) var(--size-7); font-family: var(--font-mono); - font-size: var(--ui-typo-size-md); - color: var(--color-text-inverse); + font-size: var(--type-0); + color: var(--color-text-primary); text-decoration: none; text-transform: uppercase; - letter-spacing: var(--typo-spacing-relaxed); + letter-spacing: 0.025em; - transition: background 0.8s; + transition: background 0.08s; & .type { - min-width: var(--size-16); + min-width: 4rem; - font-size: var(--ui-typo-size-2xs); + font-size: var(--type--3); color: var(--color-text-disabled); text-align: right; - letter-spacing: var(--typo-spacing-looser); + letter-spacing: 0.125em; } & .label { @@ -146,14 +146,14 @@ } & .path { - font-size: var(--ui-typo-size-2xs); + font-size: var(--type--3); color: var(--color-text-disabled); text-transform: none; letter-spacing: 0; } & .arrow { - font-size: var(--ui-typo-size-xs); + font-size: var(--type--2); color: var(--color-text-disabled); opacity: 0; transition: opacity 0.1s; @@ -161,7 +161,7 @@ &:hover, &.selected { - background: var(--color-border-strong); + background: var(--color-surface-elevated-3); & .arrow { opacity: 1; @@ -171,41 +171,41 @@ } .empty { - padding: var(--ui-spacing-luxurious) var(--ui-spacing-generous); + padding: var(--size-8) var(--size-7); - font-size: var(--ui-typo-size-sm); + font-family: var(--font-mono); + font-size: var(--type--2); color: var(--color-text-disabled); text-align: center; text-transform: uppercase; - letter-spacing: var(--typo-spacing-comfortable); + letter-spacing: 0.125em; } .footer { - @mixin border-t var(--size-px), solid, var(--color-border-strong); - display: flex; align-items: center; justify-content: space-between; - padding: var(--ui-spacing-comfortable) var(--ui-spacing-generous); + padding: var(--size-4) var(--size-7); + border-top: var(--size-px) solid var(--color-border-strong); - font-size: var(--ui-typo-size-xs); + font-family: var(--font-mono); + font-size: var(--type--3); color: var(--color-text-disabled); & .group { display: flex; - gap: var(--ui-spacing-relaxed); + gap: var(--size-5); align-items: center; } & kbd { - @mixin mx var(--ui-spacing-tight); - - padding: var(--ui-spacing-tight) var(--ui-spacing-snug); + margin: 0 var(--size-1); + padding: var(--size-1) var(--size-2); border: var(--size-px) solid var(--color-border-normal); - border-radius: var(--size-05); + border-radius: var(--size-1); font-family: var(--font-mono); - font-size: var(--ui-typo-size-2xs); + font-size: var(--type--3); } } diff --git a/src/components/layout/MastHead.astro b/src/components/layout/MastHead.astro index 2b85266..5d683dc 100644 --- a/src/components/layout/MastHead.astro +++ b/src/components/layout/MastHead.astro @@ -2,7 +2,7 @@ import CommandPalette from "./CMDPalette" --- -