diff --git a/.prettierrc.json b/.prettierrc.json index da85980..67795a7 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -38,5 +38,5 @@ "^.+\\.css$" ], "importOrderParserPlugins": ["typescript", "jsx"], - "importOrderTypeScriptVersion": "5.7.0" + "importOrderTypeScriptVersion": "6.0.3" } diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 8efc47a..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Thinkmill Labs Pty Ltd - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/astro.config.mjs b/astro.config.mjs index 121f3d6..2e0871b 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -6,7 +6,6 @@ import markdoc from '@astrojs/markdoc' import node from '@astrojs/node' import react from '@astrojs/react' -// https://astro.build/config export default defineConfig({ site: 'https://dave-dmg.de', integrations: [react(), markdoc(), keystatic()], diff --git a/package.json b/package.json index eab170c..ab195b5 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,6 @@ "name": "dave-dmg", "version": "0.0.1", "private": true, - "license": "MIT", "type": "module", "scripts": { "build": "astro build", diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro index 6be5c99..3536b6d 100644 --- a/src/layouts/BaseLayout.astro +++ b/src/layouts/BaseLayout.astro @@ -27,7 +27,7 @@ const { title, description } = Astro.props - + diff --git a/src/styles/base/colors.css b/src/styles/base/colors.css index 735bfa2..0a8bd86 100644 --- a/src/styles/base/colors.css +++ b/src/styles/base/colors.css @@ -1,112 +1,114 @@ -:root { - /* === PALETTE === */ +@layer tokens { + :root { + /* === PALETTE === */ - /* == Ink == */ - --color-palette-black-ink: oklch(21.9% 0.006 286deg); - --color-palette-charcoal: oklch(26.6% 0.008 240deg); - --color-palette-slate: oklch(33.7% 0.019 267deg); - --color-palette-graphite: oklch(40% 0.005 89deg); + /* == Ink == */ + --color-palette-black-ink: oklch(21.9% 0.006 286deg); + --color-palette-charcoal: oklch(26.6% 0.008 240deg); + --color-palette-slate: oklch(33.7% 0.019 267deg); + --color-palette-graphite: oklch(40% 0.005 89deg); - /* == Stock == */ - --color-palette-ash: oklch(51% 0.008 85deg); - --color-palette-stone: oklch(64% 0.01 84deg); - --color-palette-sand: oklch(74% 0.01 83deg); - --color-palette-bone: oklch(83% 0.01 82deg); - --color-palette-parchment: oklch(89% 0.009 82deg); - --color-palette-stock: oklch(94.5% 0.008 83deg); - --color-palette-cream: oklch(97% 0.006 84deg); - --color-palette-paper: oklch(98.8% 0.005 85deg); + /* == Stock == */ + --color-palette-ash: oklch(51% 0.008 85deg); + --color-palette-stone: oklch(64% 0.01 84deg); + --color-palette-sand: oklch(74% 0.01 83deg); + --color-palette-bone: oklch(83% 0.01 82deg); + --color-palette-parchment: oklch(89% 0.009 82deg); + --color-palette-stock: oklch(94.5% 0.008 83deg); + --color-palette-cream: oklch(97% 0.006 84deg); + --color-palette-paper: oklch(98.8% 0.005 85deg); - /* == Accents == */ - --color-palette-lava: oklch(63.6% 0.193 17.075deg); - --color-palette-lime-green: oklch(74.6% 0.18 129.939deg); - --color-palette-bright-canary: oklch(89% 0.157 97.726deg); - --color-palette-cerise: oklch(60.7% 0.23 18.554deg); - --color-palette-persimmon: oklch(68.6% 0.179 40.01deg); - --color-palette-royal-blue: oklch(46.1% 0.07 245.64deg); - --color-palette-fuchsia: oklch(49.6% 0.181 351.176deg); + /* == Accents == */ + --color-palette-lava: oklch(63.6% 0.193 17.075deg); + --color-palette-lime-green: oklch(74.6% 0.18 129.939deg); + --color-palette-bright-canary: oklch(89% 0.157 97.726deg); + --color-palette-cerise: oklch(60.7% 0.23 18.554deg); + --color-palette-persimmon: oklch(68.6% 0.179 40.01deg); + --color-palette-royal-blue: oklch(46.1% 0.07 245.64deg); + --color-palette-fuchsia: oklch(49.6% 0.181 351.176deg); - /* === SEMANTICS === */ + /* === SEMANTICS === */ - /* == Roles == */ - --color-primary: var(--color-palette-lava); - --color-primary-emphasis: oklch(from var(--color-primary) calc(l - 0.15) c h); - --color-secondary: var(--color-palette-lime-green); - --color-secondary-emphasis: oklch(from var(--color-secondary) calc(l - 0.15) c h); - --color-tertiary: var(--color-palette-bright-canary); - --color-tertiary-emphasis: oklch(from var(--color-tertiary) calc(l - 0.15) c h); + /* == Roles == */ + --color-primary: var(--color-palette-lava); + --color-primary-emphasis: oklch(from var(--color-primary) calc(l - 0.15) c h); + --color-secondary: var(--color-palette-lime-green); + --color-secondary-emphasis: oklch(from var(--color-secondary) calc(l - 0.15) c h); + --color-tertiary: var(--color-palette-bright-canary); + --color-tertiary-emphasis: oklch(from var(--color-tertiary) calc(l - 0.15) c h); - /* == Text == */ - --color-text-primary: var(--color-palette-black-ink); - --color-text-secondary: var(--color-palette-charcoal); - --color-text-tertiary: var(--color-palette-slate); - --color-text-quarternary: var(--color-palette-graphite); - --color-text-quiet: var(--color-palette-ash); - --color-text-disabled: var(--color-palette-stone); - --color-text-inverse: var(--color-palette-paper); + /* == Text == */ + --color-text-primary: var(--color-palette-black-ink); + --color-text-secondary: var(--color-palette-charcoal); + --color-text-tertiary: var(--color-palette-slate); + --color-text-quarternary: var(--color-palette-graphite); + --color-text-quiet: var(--color-palette-ash); + --color-text-disabled: var(--color-palette-stone); + --color-text-inverse: var(--color-palette-paper); - /* == Surfaces == */ - --color-surface-base: var(--color-palette-stock); - --color-surface-elevated-1: var(--color-palette-paper); - --color-surface-elevated-2: var(--color-palette-cream); - --color-surface-elevated-3: var(--color-palette-parchment); - --color-surface-inverse: var(--color-palette-black-ink); - --color-surface-selected: var(--color-palette-paper); - --color-surface-hover: var(--color-palette-cream); + /* == Surfaces == */ + --color-surface-base: var(--color-palette-stock); + --color-surface-elevated-1: var(--color-palette-paper); + --color-surface-elevated-2: var(--color-palette-cream); + --color-surface-elevated-3: var(--color-palette-parchment); + --color-surface-inverse: var(--color-palette-black-ink); + --color-surface-selected: var(--color-palette-paper); + --color-surface-hover: var(--color-palette-cream); - /* == Borders == */ - --color-border-hairline: var(--color-palette-parchment); - --color-border-subtle: var(--color-palette-bone); - --color-border-normal: var(--color-palette-sand); - --color-border-strong: var(--color-palette-black-ink); + /* == Borders == */ + --color-border-hairline: var(--color-palette-parchment); + --color-border-subtle: var(--color-palette-bone); + --color-border-normal: var(--color-palette-sand); + --color-border-strong: var(--color-palette-black-ink); - /* == States == */ - --color-state-error: var(--color-palette-cerise); - --color-state-warning: var(--color-palette-persimmon); - --color-state-success: var(--color-palette-lime-green); - --color-state-info: var(--color-palette-royal-blue); + /* == States == */ + --color-state-error: var(--color-palette-cerise); + --color-state-warning: var(--color-palette-persimmon); + --color-state-success: var(--color-palette-lime-green); + --color-state-info: var(--color-palette-royal-blue); - /* == Links == */ - --color-text-link: var(--color-primary); - --color-text-link-hover: var(--color-primary-emphasis); - --color-text-link-visited: var(--color-palette-fuchsia); + /* == Links == */ + --color-text-link: var(--color-primary); + --color-text-link-hover: var(--color-primary-emphasis); + --color-text-link-visited: var(--color-palette-fuchsia); - /* == Focus == */ - --color-focus-ring: var(--color-primary); + /* == Focus == */ + --color-focus-ring: var(--color-primary); - /* == Apparatus == */ - --color-unfilled-block: var(--color-palette-sand); - --color-unfilled-line: var(--color-palette-bone); - --color-plate: var(--color-palette-stone); - --color-rule: var(--color-palette-bone); - --color-rule-strong: var(--color-palette-black-ink); + /* == Apparatus == */ + --color-unfilled-block: var(--color-palette-sand); + --color-unfilled-line: var(--color-palette-bone); + --color-plate: var(--color-palette-stone); + --color-rule: var(--color-palette-bone); + --color-rule-strong: var(--color-palette-black-ink); - /* == Dice & Receipts == */ - --color-dice-surface: var(--color-surface-inverse); - --color-dice-text: var(--color-text-inverse); - --color-receipt: var(--color-text-quiet); + /* == Dice & Receipts == */ + --color-dice-surface: var(--color-surface-inverse); + --color-dice-text: var(--color-text-inverse); + --color-receipt: var(--color-text-quiet); - /* == Scale Tier == */ - --color-tier-active-surface: var(--color-palette-paper); - --color-tier-active-text: var(--color-text-primary); - --color-tier-idle-surface: var(--color-palette-cream); - --color-tier-idle-text: var(--color-text-quiet); - --color-tier-locked-text: var(--color-text-disabled); - --color-tier-marker: var(--color-primary); + /* == Scale Tier == */ + --color-tier-active-surface: var(--color-palette-paper); + --color-tier-active-text: var(--color-text-primary); + --color-tier-idle-surface: var(--color-palette-cream); + --color-tier-idle-text: var(--color-text-quiet); + --color-tier-locked-text: var(--color-text-disabled); + --color-tier-marker: var(--color-primary); - /* == Overlays == */ - --color-overlay-light: oklch(21.9% 0.006 285.911deg / 8%); - --color-overlay-medium: oklch(21.9% 0.006 285.911deg / 30%); - --color-overlay-heavy: oklch(21.9% 0.006 285.911deg / 60%); + /* == Overlays == */ + --color-overlay-light: oklch(21.9% 0.006 285.911deg / 8%); + --color-overlay-medium: oklch(21.9% 0.006 285.911deg / 30%); + --color-overlay-heavy: oklch(21.9% 0.006 285.911deg / 60%); - /* == Shadow == */ - --shadow-card: var(--size-1) var(--size-1) 0 var(--color-palette-black-ink); - --shadow-raised: var(--size-2) var(--size-2) 0 var(--color-palette-black-ink); - --shadow-derived: var(--size-1) var(--size-1) 0 var(--color-tertiary); - --shadow-pressed: 0 0 0 var(--color-palette-black-ink); + /* == Shadow == */ + --shadow-card: var(--size-1) var(--size-1) 0 var(--color-palette-black-ink); + --shadow-raised: var(--size-2) var(--size-2) 0 var(--color-palette-black-ink); + --shadow-derived: var(--size-1) var(--size-1) 0 var(--color-tertiary); + --shadow-pressed: 0 0 0 var(--color-palette-black-ink); - /* == Utility == */ - --color-highlight: var(--color-tertiary); - --color-skeleton-base: var(--color-surface-elevated-2); - --color-skeleton-shimmer: var(--color-surface-elevated-1); + /* == Utility == */ + --color-highlight: var(--color-tertiary); + --color-skeleton-base: var(--color-surface-elevated-2); + --color-skeleton-shimmer: var(--color-surface-elevated-1); + } } diff --git a/src/styles/base/foundation.css b/src/styles/base/foundation.css index 8a3bd6a..d395a45 100644 --- a/src/styles/base/foundation.css +++ b/src/styles/base/foundation.css @@ -1,12 +1,12 @@ @layer reset { /* -Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/preflight) -*/ + Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/preflight) + */ /* - 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) - 2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) - */ + 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) + 2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) + */ *, ::before, @@ -17,11 +17,11 @@ Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/pre } /* - 1. Use a consistent sensible line-height in all browsers. - 2. Prevent adjustments of font size after orientation changes in iOS. - 3. Use a more readable tab size. - 4. Use the system's `sans` font-family by default. - */ + 1. Use a consistent sensible line-height in all browsers. + 2. Prevent adjustments of font size after orientation changes in iOS. + 3. Use a more readable tab size. + 4. Use the system's `sans` font-family by default. + */ html { font-family: @@ -45,9 +45,9 @@ Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/pre } /* - 1. Remove the margin in all browsers. - 2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. - */ + 1. Remove the margin in all browsers. + 2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. + */ body { margin: 0; /* 1 */ @@ -55,10 +55,10 @@ Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/pre } /* - 1. Add the correct height in Firefox. - 2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) - 3. Ensure horizontal rules are visible by default. - */ + 1. Add the correct height in Firefox. + 2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) + 3. Ensure horizontal rules are visible by default. + */ hr { height: 0; /* 1 */ @@ -67,16 +67,16 @@ Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/pre } /* - Add the correct text decoration in Chrome, Edge, and Safari. - */ + Add the correct text decoration in Chrome, Edge, and Safari. + */ abbr:where([title]) { text-decoration: underline dotted; } /* - Remove the default font size and weight for headings. - */ + Remove the default font size and weight for headings. + */ h1, h2, @@ -89,8 +89,8 @@ Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/pre } /* - Reset links to optimize for opt-in styling instead of opt-out. - */ + Reset links to optimize for opt-in styling instead of opt-out. + */ a { color: inherit; @@ -98,8 +98,8 @@ Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/pre } /* - Add the correct font weight in Edge and Safari. - */ + Add the correct font weight in Edge and Safari. + */ b, strong { @@ -107,9 +107,9 @@ Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/pre } /* - 1. Use the system's `mono` font family by default. - 2. Correct the odd `em` font sizing in all browsers. - */ + 1. Use the system's `mono` font family by default. + 2. Correct the odd `em` font sizing in all browsers. + */ code, kbd, @@ -122,16 +122,16 @@ Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/pre } /* - Add the correct font size in all browsers. - */ + Add the correct font size in all browsers. + */ small { font-size: 80%; } /* - Prevent `sub` and `sup` elements from affecting the line height in all browsers. - */ + Prevent `sub` and `sup` elements from affecting the line height in all browsers. + */ sub, sup { @@ -150,10 +150,10 @@ Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/pre } /* - 1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) - 2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) - 3. Remove gaps between table borders by default. - */ + 1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) + 2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) + 3. Remove gaps between table borders by default. + */ table { border-collapse: collapse; /* 3 */ @@ -162,10 +162,10 @@ Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/pre } /* - 1. Change the font styles in all browsers. - 2. Remove the margin in Firefox and Safari. - 3. Remove default padding in all browsers. - */ + 1. Change the font styles in all browsers. + 2. Remove the margin in Firefox and Safari. + 3. Remove default padding in all browsers. + */ button, input, @@ -183,8 +183,8 @@ Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/pre } /* - Remove the inheritance of text transform in Edge and Firefox. - */ + Remove the inheritance of text transform in Edge and Firefox. + */ button, select { @@ -192,9 +192,9 @@ Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/pre } /* - 1. Correct the inability to style clickable types in iOS and Safari. - 2. Remove default button styles. - */ + 1. Correct the inability to style clickable types in iOS and Safari. + 2. Remove default button styles. + */ button, [type="button"], @@ -206,32 +206,32 @@ Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/pre } /* - Use the modern Firefox focus style for all focusable elements. - */ + Use the modern Firefox focus style for all focusable elements. + */ :-moz-focusring { outline: auto; } /* - Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) - */ + Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) + */ :-moz-ui-invalid { box-shadow: none; } /* - Add the correct vertical alignment in Chrome and Firefox. - */ + Add the correct vertical alignment in Chrome and Firefox. + */ progress { vertical-align: baseline; } /* - Correct the cursor style of increment and decrement buttons in Safari. - */ + Correct the cursor style of increment and decrement buttons in Safari. + */ ::-webkit-inner-spin-button, ::-webkit-outer-spin-button { @@ -239,9 +239,9 @@ Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/pre } /* - 1. Correct the odd appearance in Chrome and Safari. - 2. Correct the outline style in Safari. - */ + 1. Correct the odd appearance in Chrome and Safari. + 2. Correct the outline style in Safari. + */ [type="search"] { appearance: textfield; /* 1 */ @@ -249,17 +249,17 @@ Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/pre } /* - Remove the inner padding in Chrome and Safari on macOS. - */ + Remove the inner padding in Chrome and Safari on macOS. + */ ::-webkit-search-decoration { appearance: none; } /* - 1. Correct the inability to style clickable types in iOS and Safari. - 2. Change font properties to `inherit` in Safari. - */ + 1. Correct the inability to style clickable types in iOS and Safari. + 2. Change font properties to `inherit` in Safari. + */ ::-webkit-file-upload-button { font: inherit; /* 2 */ @@ -267,16 +267,16 @@ Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/pre } /* - Add the correct display in Chrome and Safari. - */ + Add the correct display in Chrome and Safari. + */ summary { display: list-item; } /* - Removes the default spacing and border for appropriate elements. - */ + Removes the default spacing and border for appropriate elements. + */ blockquote, dl, @@ -312,16 +312,16 @@ Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/pre } /* - Prevent resizing textareas horizontally by default. - */ + Prevent resizing textareas horizontally by default. + */ textarea { resize: vertical; } /* - 1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) - */ + 1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) + */ input::placeholder, textarea::placeholder { @@ -329,8 +329,8 @@ Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/pre } /* - Set the default cursor for buttons. - */ + Set the default cursor for buttons. + */ button, [role="button"] { @@ -338,18 +338,18 @@ Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/pre } /* - Make sure disabled buttons don't get the pointer cursor. - */ + Make sure disabled buttons don't get the pointer cursor. + */ :disabled { cursor: default; } /* - 1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) - 2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) - This can trigger a poorly considered lint error in some tools but is included by design. - */ + 1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) + 2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) + This can trigger a poorly considered lint error in some tools but is included by design. + */ img, svg, @@ -364,8 +364,8 @@ Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/pre } /* - Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) - */ + Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) + */ img, video { @@ -374,8 +374,8 @@ Foundation inspired by Tailwind CSS Preflight. (https://tailwindcss.com/docs/pre } /* - Make elements with the HTML hidden attribute stay hidden by default. - */ + Make elements with the HTML hidden attribute stay hidden by default. + */ [hidden] { display: none; diff --git a/src/styles/base/primitives.css b/src/styles/base/primitives.css index 247580e..49fa0ba 100644 --- a/src/styles/base/primitives.css +++ b/src/styles/base/primitives.css @@ -1,200 +1,202 @@ -.ui { - /* == Font sizes == */ - --type--3: 0.625rem; /* 10px */ - --type--2: 0.6875rem; /* 11px */ - --type--1: 0.75rem; /* 12px */ - --type-0: 0.875rem; /* 14px — base */ - --type-1: 1rem; /* 16px */ - --type-2: 1.125rem; /* 18px */ - --type-3: 1.25rem; /* 20px */ - --type-4: 1.375rem; /* 22px */ - --type-5: 1.5625rem; /* 25px */ - --type-6: 1.75rem; /* 28px */ - --type-7: 1.9375rem; /* 31px */ - --type-8: 2.1875rem; /* 35px */ - --type-9: 2.5rem; /* 40px */ - --type-10: 2.75rem; /* 44px */ +@layer tokens { + .ui { + /* == Font sizes == */ + --type--3: 0.625rem; /* 10px */ + --type--2: 0.6875rem; /* 11px */ + --type--1: 0.75rem; /* 12px */ + --type-0: 0.875rem; /* 14px — base */ + --type-1: 1rem; /* 16px */ + --type-2: 1.125rem; /* 18px */ + --type-3: 1.25rem; /* 20px */ + --type-4: 1.375rem; /* 22px */ + --type-5: 1.5625rem; /* 25px */ + --type-6: 1.75rem; /* 28px */ + --type-7: 1.9375rem; /* 31px */ + --type-8: 2.1875rem; /* 35px */ + --type-9: 2.5rem; /* 40px */ + --type-10: 2.75rem; /* 44px */ - /* == Line heights == */ - --leading--3: 1.6; - --leading--2: 1.4545; - --leading--1: 1.6667; - --leading-0: 1.4286; - --leading-1: 1.5; - --leading-2: 1.3333; - --leading-3: 1.4; - --leading-4: 1.2727; - --leading-5: 1.28; - --leading-6: 1.2857; - --leading-7: 1.1613; - --leading-8: 1.1429; - --leading-9: 1.2; - --leading-10: 1.1818; + /* == Line heights == */ + --leading--3: 1.6; + --leading--2: 1.4545; + --leading--1: 1.6667; + --leading-0: 1.4286; + --leading-1: 1.5; + --leading-2: 1.3333; + --leading-3: 1.4; + --leading-4: 1.2727; + --leading-5: 1.28; + --leading-6: 1.2857; + --leading-7: 1.1613; + --leading-8: 1.1429; + --leading-9: 1.2; + --leading-10: 1.1818; - /* == Letter spacing == */ - --tracking--3: 0.012em; - --tracking--2: 0.0082em; - --tracking--1: 0.005em; - --tracking-0: 0em; - --tracking-1: -0.0037em; - --tracking-2: -0.0067em; - --tracking-3: -0.009em; - --tracking-4: -0.0109em; - --tracking-5: -0.0132em; - --tracking-6: -0.015em; - --tracking-7: -0.0165em; - --tracking-8: -0.018em; - --tracking-9: -0.0195em; - --tracking-10: -0.0205em; + /* == Letter spacing == */ + --tracking--3: 0.012em; + --tracking--2: 0.0082em; + --tracking--1: 0.005em; + --tracking-0: 0em; + --tracking-1: -0.0037em; + --tracking-2: -0.0067em; + --tracking-3: -0.009em; + --tracking-4: -0.0109em; + --tracking-5: -0.0132em; + --tracking-6: -0.015em; + --tracking-7: -0.0165em; + --tracking-8: -0.018em; + --tracking-9: -0.0195em; + --tracking-10: -0.0205em; - /* == Prose leading == */ - --leading-prose: 1.7; - --leading-prose-tight: 1.6; + /* == Prose leading == */ + --leading-prose: 1.7; + --leading-prose-tight: 1.6; - /* == Chrome tracking == */ - --tracking-label: 0.14em; /* step labels, buttons */ - --tracking-tag: 0.12em; /* tags */ - --tracking-eyebrow: 0.16em; /* section eyebrows, zone labels */ - --tracking-plate: 0.08em; /* plate numbers */ - --tracking-display: 0.01em; /* Blaka h1 */ -} - -.content { - /* == Font sizes == */ - --type--3: 0.625em; - --type--2: 0.6875em; - --type--1: 0.8125em; - --type-0: 1em; /* 16px — base */ - --type-1: 1.1875em; - --type-2: 1.4375em; - --type-3: 1.6875em; - --type-4: 2em; - --type-5: 2.375em; - --type-6: 2.8125em; - --type-7: 3.375em; - --type-8: 4em; - --type-9: 4.75em; - --type-10: 5.6875em; - - /* == Line heights == */ - --leading--3: 2; - --leading--2: 1.8182; - --leading--1: 1.5385; - --leading-0: 1.5; - --leading-1: 1.4737; - --leading-2: 1.3912; - --leading-3: 1.3333; - --leading-4: 1.25; - --leading-5: 1.2632; - --leading-6: 1.1556; - --leading-7: 1.1852; - --leading-8: 1.125; - --leading-9: 1.1053; - --leading-10: 1.0989; - - /* == Letter spacing == */ - --tracking--3: 0.018em; - --tracking--2: 0.0136em; - --tracking--1: 0.0069em; - --tracking-0: 0em; - --tracking-1: -0.0047em; - --tracking-2: -0.0091em; - --tracking-3: -0.0122em; - --tracking-4: -0.015em; - --tracking-5: -0.0174em; - --tracking-6: -0.0193em; - --tracking-7: -0.0211em; - --tracking-8: -0.0225em; - --tracking-9: -0.0237em; - --tracking-10: -0.0247em; - --leading-prose: 1.6; -} - -:root { - /* === FONT FAMILIES == */ - --font-display: var(--font-blaka), serif; - --font-header: var(--font-geist), sans-serif; - --font-body: var(--font-julia-mono), monospace; - --font-mono: var(--font-geist-mono), monospace; - --font-symbols: var(--font-unigrim), monospace; - --font-weight-display: 400; - --font-weight-body: 400; - --font-weight-emphasis: 700; - --font-weight-label: 600; - --font-weight-heading: 800; - - /* === SIZE === */ - --size-0: 0; - --size-px: 0.0625rem; /* 1px */ - --size-1: 0.125rem; /* 2px */ - --size-2: 0.25rem; /* 4px */ - --size-3: 0.375rem; /* 6px */ - --size-4: 0.5rem; /* 8px */ - --size-5: 0.625rem; /* 10px */ - --size-6: 0.75rem; /* 12px */ - --size-7: 0.875rem; /* 14px */ - --size-8: 1rem; /* 16px */ - --size-9: 1.25rem; /* 20px */ - --size-10: 1.5rem; /* 24px */ - --size-11: 2rem; - --size-12: 2.5rem; - --size-13: 3rem; - --size-14: 4rem; - --size-15: 5rem; - --size-16: 6rem; - - /* === SPACING === */ - --space-0: 0; - --space-px: 0.0625em; - --space-1: 0.125em; - --space-2: 0.25em; - --space-3: 0.375em; - --space-4: 0.5em; - --space-5: 0.625em; - --space-6: 0.75em; - --space-7: 0.875em; - --space-8: 1em; - --space-9: 1.25em; - --space-10: 1.5em; - --space-11: 2em; - --space-12: 2.5em; - --space-13: 3em; - --space-14: 4em; - --space-15: 5em; - --space-16: 6em; - - /* === BORDER === */ - --border-hairline: var(--size-px); /* 1px — inside a card */ - --border-card: var(--size-1); /* 2px — the card edge */ - --border-shell: var(--size-3); /* 6px?? no: see below */ - --border-boundary: 0.1875rem; /* 3px — section / shell boundary */ - --border-marker: var(--size-1); /* 2px — the tier row active marker */ - --radius: 0; /* always. */ - - /* === FIXED SLOTS === */ - --slot-sigil: var(--size-7); /* 14px — Unigrim Dee. RESERVED, empty. */ - --slot-plate: 2.25rem; /* plate number column */ - --slot-modifier: 1.125rem; /* the +2 / −1 column in contributions */ - --slot-marker: var(--size-5); /* footnote marker column */ - --slot-roll-range: 1.5rem; /* the 4–5 column in a table row */ - - /* ═══ MOTION ═══ */ - --motion-fast: 150ms; /* state change: hover, focus, press */ - --motion-normal: 300ms; /* reveals: chooser open, tier switch */ - --motion-slow: 500ms; - --motion-instant: 0ms; /* roll results. Use this deliberately. */ - --ease-out: cubic-bezier(0.16, 1, 0.3, 1); - --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1); - - /* ═══ LAYOUT ═══ */ - --layout-max-width: 74rem; /* the tool shell */ - --layout-content-width: minmax(0, 78ch); /* article measure */ - --layout-margin-width: minmax(10ch, 1fr); - --layout-step-columns: 2; - --layout-gutter: var(--size-6); /* between step cards */ - --layout-section-gap: var(--size-9); /* header to grid */ - --layout-page-margin: var(--size-10); - --layout-tier-height: 2.25rem; - --layout-header-height: 3.125rem; - --layout-card-min-height: 6.5rem; /* stops grid reflow on resolve */ + /* == Chrome tracking == */ + --tracking-label: 0.14em; /* step labels, buttons */ + --tracking-tag: 0.12em; /* tags */ + --tracking-eyebrow: 0.16em; /* section eyebrows, zone labels */ + --tracking-plate: 0.08em; /* plate numbers */ + --tracking-display: 0.01em; /* Blaka h1 */ + } + + .content { + /* == Font sizes == */ + --type--3: 0.625em; + --type--2: 0.6875em; + --type--1: 0.8125em; + --type-0: 1em; /* 16px — base */ + --type-1: 1.1875em; + --type-2: 1.4375em; + --type-3: 1.6875em; + --type-4: 2em; + --type-5: 2.375em; + --type-6: 2.8125em; + --type-7: 3.375em; + --type-8: 4em; + --type-9: 4.75em; + --type-10: 5.6875em; + + /* == Line heights == */ + --leading--3: 2; + --leading--2: 1.8182; + --leading--1: 1.5385; + --leading-0: 1.5; + --leading-1: 1.4737; + --leading-2: 1.3912; + --leading-3: 1.3333; + --leading-4: 1.25; + --leading-5: 1.2632; + --leading-6: 1.1556; + --leading-7: 1.1852; + --leading-8: 1.125; + --leading-9: 1.1053; + --leading-10: 1.0989; + + /* == Letter spacing == */ + --tracking--3: 0.018em; + --tracking--2: 0.0136em; + --tracking--1: 0.0069em; + --tracking-0: 0em; + --tracking-1: -0.0047em; + --tracking-2: -0.0091em; + --tracking-3: -0.0122em; + --tracking-4: -0.015em; + --tracking-5: -0.0174em; + --tracking-6: -0.0193em; + --tracking-7: -0.0211em; + --tracking-8: -0.0225em; + --tracking-9: -0.0237em; + --tracking-10: -0.0247em; + --leading-prose: 1.6; + } + + :root { + /* === FONT FAMILIES == */ + --font-display: var(--font-blaka), serif; + --font-header: var(--font-geist), sans-serif; + --font-body: var(--font-julia-mono), monospace; + --font-mono: var(--font-geist-mono), monospace; + --font-symbols: var(--font-unigrim), monospace; + --font-weight-display: 400; + --font-weight-body: 400; + --font-weight-emphasis: 700; + --font-weight-label: 600; + --font-weight-heading: 800; + + /* === SIZE === */ + --size-0: 0; + --size-px: 0.0625rem; /* 1px */ + --size-1: 0.125rem; /* 2px */ + --size-2: 0.25rem; /* 4px */ + --size-3: 0.375rem; /* 6px */ + --size-4: 0.5rem; /* 8px */ + --size-5: 0.625rem; /* 10px */ + --size-6: 0.75rem; /* 12px */ + --size-7: 0.875rem; /* 14px */ + --size-8: 1rem; /* 16px */ + --size-9: 1.25rem; /* 20px */ + --size-10: 1.5rem; /* 24px */ + --size-11: 2rem; + --size-12: 2.5rem; + --size-13: 3rem; + --size-14: 4rem; + --size-15: 5rem; + --size-16: 6rem; + + /* === SPACING === */ + --space-0: 0; + --space-px: 0.0625em; + --space-1: 0.125em; + --space-2: 0.25em; + --space-3: 0.375em; + --space-4: 0.5em; + --space-5: 0.625em; + --space-6: 0.75em; + --space-7: 0.875em; + --space-8: 1em; + --space-9: 1.25em; + --space-10: 1.5em; + --space-11: 2em; + --space-12: 2.5em; + --space-13: 3em; + --space-14: 4em; + --space-15: 5em; + --space-16: 6em; + + /* === BORDER === */ + --border-hairline: var(--size-px); /* 1px — inside a card */ + --border-card: var(--size-1); /* 2px — the card edge */ + --border-shell: var(--size-3); /* 6px?? no: see below */ + --border-boundary: 0.1875rem; /* 3px — section / shell boundary */ + --border-marker: var(--size-1); /* 2px — the tier row active marker */ + --radius: 0; /* always. */ + + /* === FIXED SLOTS === */ + --slot-sigil: var(--size-7); /* 14px — Unigrim Dee. RESERVED, empty. */ + --slot-plate: 2.25rem; /* plate number column */ + --slot-modifier: 1.125rem; /* the +2 / −1 column in contributions */ + --slot-marker: var(--size-5); /* footnote marker column */ + --slot-roll-range: 1.5rem; /* the 4–5 column in a table row */ + + /* ═══ MOTION ═══ */ + --motion-fast: 150ms; /* state change: hover, focus, press */ + --motion-normal: 300ms; /* reveals: chooser open, tier switch */ + --motion-slow: 500ms; + --motion-instant: 0ms; /* roll results. Use this deliberately. */ + --ease-out: cubic-bezier(0.16, 1, 0.3, 1); + --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1); + + /* ═══ LAYOUT ═══ */ + --layout-max-width: 74rem; /* the tool shell */ + --layout-content-width: minmax(0, 78ch); /* article measure */ + --layout-margin-width: minmax(10ch, 1fr); + --layout-step-columns: 2; + --layout-gutter: var(--size-6); /* between step cards */ + --layout-section-gap: var(--size-9); /* header to grid */ + --layout-page-margin: var(--size-10); + --layout-tier-height: 2.25rem; + --layout-header-height: 3.125rem; + --layout-card-min-height: 6.5rem; /* stops grid reflow on resolve */ + } } diff --git a/src/styles/global.css b/src/styles/global.css index 9fd46e8..ce88068 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -1,6 +1,5 @@ -@layer reset, base, components, utilities; +@layer reset, tokens, base, components, utilities; -@import url("base/custom-media.css"); @import url("base/foundation.css"); @import url("base/colors.css"); @import url("base/primitives.css"); diff --git a/tsconfig.json b/tsconfig.json index 54d2bfa..c1167f5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,7 +5,6 @@ "compilerOptions": { "jsx": "react-jsx", "jsxImportSource": "react", - "baseUrl": ".", "paths": { "@/*": ["./src/*"], },